Java 繼承(cheng)內部類
大家有沒有想過內部類究竟能不能被繼承呢?
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();
}
}
事實證明(ming)是可以(yi)的, 需(xu)要我們注意的是內部(bu)類隱式(shi)的持有外部(bu)類的引用(yong),所以(yi),我們需(xu)要在(zai)Extender的構造方(fang)法(fa)中(zhong)顯式(shi)的調用(yong)Outer的構造方(fang)法(fa)來給Inner一個outer的引用(yong)。
