从内部类继承
2008-01-05 10:45:59 来源:WEB开发网核心提示:由于内部类构建器必须同封装类对象的一个句柄联系到一起,所以从一个内部类继续的时候,从内部类继承,情况会稍微变得有些复杂,这儿的问题是封装类的“秘密”句柄必须获得初始化,此外,必须在构建器中采用下述语法:enclosingClassHandle.super();它提供了必要的句柄,而且在衍生类中不再有一个默认的对象可以连
由于内部类构建器必须同封装类对象的一个句柄联系到一起,所以从一个内部类继续的时候,情况会稍微变得有些复杂。这儿的问题是封装类的“秘密”句柄必须获得初始化,而且在衍生类中不再有一个默认的对象可以连接。解决这个问题的办法是采用一种非凡的语法,明确建立这种关联:
//: InheritInner.java
// Inheriting an inner class
class WithInner {
class Inner {}
}
public class InheritInner
extends WithInner.Inner {
//! InheritInner() {} // Won't compile
InheritInner(WithInner wi) {
wi.super();
}
public static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
} ///:~
从中可以看到,InheritInner只对内部类进行了扩展,没有扩展外部类。但在需要创建一个构建器的时候,默认对象已经没有意义,我们不能只是传递封装对象的一个句柄。此外,必须在构建器中采用下述语法:
enclosingClassHandle.super();
它提供了必要的句柄,以便程序正确编译。
- ››内部人士讲述“响一声”电话回拨吸费伎俩
- ››继承派生多态
- ››内部对象
- ››内部类和上溯造型
- ››继承:重新使用接口
- ››继承和finalize()
- ››内部类标识符
- ››内部类可以覆盖吗?
- ››继承初始化
- ››继承“protected”
- ››内部窗体设计与窗体定位
- ››内部 SQL Server 诊断工具,第 1 部分:PSSDiag
更多精彩
赞助商链接