编译器说得很清除啊,适配器既然实现IRoundPeg,ISquarePeg就必须实现他们的方法insertIntoHole与insert。
否则肯定不通过的啊。这个跟设计模式没有什么关系,完全是接口语法。

解决方案 »

  1.   

    public  class PegAdapter {  RoundPeg roundPeg;
      SquarePeg squarePeg; PegAdapter() {
          roundPeg=new RoundPeg();
          squarePeg=new SquarePeg();
      }   PegAdapter(RoundPeg peg) {
        this.roundPeg = peg;
      }  PegAdapter(SquarePeg peg) {
        this.squarePeg = peg;
      }  public void sinsert(String str) {
        squarePeg.insert(str);
      }  public void rinsert(String str) {
        roundPeg.insertIntoHole(str);
      }  public static void main(String args[]) {
      
        SquarePeg peg=new SquarePeg();    
        PegAdapter a = new PegAdapter(peg);   
        a.sinsert("dsfklkk");   PegAdapter b=new PegAdapter();//
       b.sinsert("dsfklkk");
       
      }
    }
    这样可以
      

  2.   

    public static void main(String args[]) {
      
        SquarePeg peg=new SquarePeg();
    RoundPeg reg=new RoundPeg();
        
        PegAdapter a = new PegAdapter(peg);   
        a.sinsert("dsfklkk");   PegAdapter b=new PegAdapter(reg);//
       b.rinsert("rsfklkk");
       
      }
    }