大家有沒有想過內部類究竟能不能被繼承呢?
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的引用。