public class A{
  public void methodA(){
    System.out.println("这是a的方法");
  }
}public class B{
  public void methodB(){
    System.out.println("这是b的方法");
  }
}现在有个类C,想同时继承A的methodA()和B的method(),该如何利用接口来实现多继承ps:就是想在C中不写方法methodA()和方法methodB()就可以使用这两个方法。

解决方案 »

  1.   

    不能直接多继承,你可以写个包装器类,内部把methoda和methodb方法委托给a,b两个实例去做。
      

  2.   


    那所谓的“引进接口是为了弥补java不支持多继承带来的不足”作何解,我就是想知道如何利用接口来实现多继承,按照你的方法没用到接口啊
      

  3.   

    分别定义2个接口 IA IB 
    class A implement IA
    class B implement IB
    class C implement IA,IB
      

  4.   


    这样就必须在C类中写出methodA()和methodB()的方法体,相当于把这两方法重新写一遍,我就是不想再一次写这两个方法
      

  5.   

    你可能没明白 你的A B 两个类其实已经是作废的了
    C类已经把A,B2个类合并了 等于还是只写了一遍
    你要是不想写 都改成静态方法就行了
      

  6.   


    public   interface   A 

          public   void   method1(); 
    } public   interface   B 

          public   void   method2(); 
    } public   class   A1   implements   A 

          public   void   method1() 
          { 
                  ... 
          } 
    } public   class   B1   implements   B 

          public   void   method2() 
          { 
                  ... 
          } 

    public   class   NewClass   implements   A,B 

            private   A   a   =   new   A1(); 
            private   B   b   =   new   B1();         public   void   method1() 
            { 
                    a.method1(); 
            }         public   void   method2() 
            { 
                    b.method2(); 
            } 

    二楼和四楼的意思是上面这种方法吧,但是这种方法其实根本用不着接口的,可以用class   a 
    class   b class   c{ 
        private   a   a1; 
        private   b   b1; 
      

  7.   

    当然LZ可以使用内部类来完成多继承。举个例子:
    class A{
    public void print(){
    System.out.println("A");
    }
    }class B{

    public void print()
    {
    System.out.println("B");
    }
    }class C extends A
    {
    class PB extends B
    {
    public B getB()
    {
    return this;
    }
    }

    public void PrintB()
    {
    PB b = new PB();

    b.getB().print();
    }
    }