本帖最后由 周兴中 于 2012-6-25 00:48 编辑
每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。
内部类可以继承内部类,也可以继承外部类。
public class Outer {
class Inner {
void doSomething() {
System.out.println("Inner doing ...");
}
}
class Inner2 extends Inner {
void doSomething() {
System.out.println("Inner2 doing ...");
}
void readme() {
System.out.println("HeHe!");
}
}
}
class Test {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner in = outer.new Inner();
Outer.Inner2 in2 = outer.new Inner2();
in.doSomething();
in2.doSomething();
in2.readme();
}
}
运行结果:
Inner doing ...
Inner2 doing ...
HeHe!
还有一种继承式的匿名内部类和接口式的匿名内部类.
|