Java编程思想第四版的204页,中有几句这样的话:这段话的意思不是很明白,开始以为内部类可以多重继承,但实际上不是,有人能解释一下不?谢谢!

解决方案 »

  1.   

    内部类的作用:
    1.隐藏实现。
    2.实现类C++的多重继承(相对用接口实现的多重继承相比,内部类能实现对多个抽象类的多重继承).Java不支持类的多重继承,但可以使用内部类来继承,实现更多的类。
    下面的例子,目标类需要继承两个抽象类(A和B)。目标类C本身继承类A,并使用一个匿名内部类继承另一个类B。
    abstract class A {
        abstract void methodA();
    }
     
    abstract class B {
        abstract void methodB();
    }
     
    class C extends A {
        @Override
        void methodA() {
           System.out.println("extends A's method");
        }
     
        B getB() {
           return new B() {
               @Override
               void methodB() {
                  System.out.println("extends B's method");
               }
           };
        }
    }
     
    public class MultiImplementation {
        public void doA(A a) {
           a.methodA();
        }
     
        public void doB(B b) {
           b.methodB();
        }
     
        public static void main(String[] args) {
           MultiImplementation mi = new MultiImplementation();
           C c = new C();
           mi.doA(c);
           mi.doB(c.getB());
        }

      

  2.   

    正解,java是单继承的,就是一个类有且仅有一个父类,而一个父类可以有多个之类,但是通过内部类继承不同的父类,可以实现多继承