Java 继承内部类

大家有没有想过内部类究竟能不能被继承呢?

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的引用。

posted @ 2016-10-16 17:51  浩大王  阅读(2409)  评论(0编辑  收藏  举报