服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

从内部类继承


  由于内部类构建器必须同封装类对象的一个句柄联系到一起,所以从一个内部类继承的时候,情况会稍微变得有些复杂。这儿的问题是封装类的“秘密”句柄必须获得初始化,而且在衍生类中不再有一个默认的对象可以连接。解决这个问题的办法是采用一种特殊的语法,明确建立这种关联:
  
  //: 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();
  
  它提供了必要的句柄,以便程序正确编译。

扫描关注微信公众号