大家有没有想过内部类究竟能不能被继承呢?
public class Main { public static void main(String[] args){ Outer outer = new Outer(); Extender extender = new Extender(outer); }}class Outer{ class Inner{ void func(){ System.out.println("hello Inner"); } }}class Extender extends Outer.Inner{ Extender(Outer outer){ outer.super(); }}
事实证明是可以的, 需要我们注意的是内部类隐式的持有外部类的引用,所以,我们需要在Extender的构造方法中显式的调用Outer的构造方法来给Inner一个outer的引用。