Java内部类的继承(全)

 更新时间:2015年07月27日 10:53:09   作者:尚未初始化  
这篇文章主要介绍了Java内部类的继承,大家都知道JAVA内部类的构造器必须连接指向其外围类对象的引用,所以在继承内部类的时候,需要在导出类的构造器中手动加入对基类构造器的调用,需要的朋友可以参考下

下面通过实例代码给大家分享下有关JAVA内部类的继承,具体详解如下:

Java内部类的构造器必须连接到指向其外围类对象的引用(构造内部类必须给它一个外部类对象的引用,内部类依赖于外部类对象),所以在继承内部类的时候,需要在导出类的构造器中手动加入对基类构造器的调用。

因为,在导出类实例化时,并不存在一个外围类对象,以让导出类的实例去连接到它。

所以,我们需要创建一个外围类,然后用一个特定的语法来表明内部类与外围类的关系。

在下例子中,需要给导出类InheritInner一个来自内部类的外围类中的引用。普通的继承,只需在导出类构造器中加入super();,而内部类则需要外围类对象引用.super();

class WithInner{
  class Inner{}
 }
 public class InheritInner extends WithInner.Inner{
  InheritInner(WithInner wi){
     wi.super(); //wi的父类是object
   }
   public static void main(String[] args){
    WithInner wi = new WithInner();
    InheritInner ii = new InheritInner(wi);
  }
 }

而进一步,当被继承的内部类只有非默认构造器时应该怎么办呢?

class WithInner{
  class Inner{
    public Inner(int i){
      System.out.println(i);
    }
  }
}
public class InheritInner extends WithInner.Inner{
  InheritInner(WithInner wi){
    int i=0;
    wi.super(i);//如代码所示,当被继承的构造器需要参数时,应把参数传递给这个super函数
  }
  public static void main(String[] args){
    WithInner wi = new WithInner();
    InheritInner ii = new InheritInner(wi);
  }
}    

以上就是对JAVA内部类的继承详解,希望能够帮助到大家。

相关文章

  • MyBatis一对多嵌套查询的完整实例

    MyBatis一对多嵌套查询的完整实例

    这篇文章主要给大家介绍了关于MyBatis一对多嵌套查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java如何实现文件压缩与上传FTP

    Java如何实现文件压缩与上传FTP

    这篇文章主要介绍了Java如何实现文件压缩与上传FTP,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • SpringBoot各种事务操作实战(自动回滚、手动回滚、部分回滚)

    SpringBoot各种事务操作实战(自动回滚、手动回滚、部分回滚)

    本文主要介绍了SpringBoot各种事务操作实战,包含自动回滚、手动回滚、部分回滚这三种,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Java中实现接口限流的方案详解

    Java中实现接口限流的方案详解

    常用的接口限流方案就是计数器限流方案、时间窗口限流方案和令牌桶限流方案等,这些方案的概念大致也知道,但是实际上也没有实现过,所以本文就来自动动手实践一下吧
    2023-05-05
  • 轻松掌握java责任链模式

    轻松掌握java责任链模式

    这篇文章主要帮助大家轻松掌握java责任链模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Java ConcurrentHashMap的使用示例

    Java ConcurrentHashMap的使用示例

    这篇文章主要介绍了Java ConcurrentHashMap的使用示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • Java如何实现对称加密

    Java如何实现对称加密

    这篇文章主要介绍了Java如何实现对称加密问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • java判断字符串是否为null的四种方式汇总

    java判断字符串是否为null的四种方式汇总

    这篇文章主要介绍了java判断字符串是否为null的四种方式汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • SpringBoot配置logback.xml 多环境的操作步骤

    SpringBoot配置logback.xml 多环境的操作步骤

    最近在研究springboot的日志,所以记录一下,做一下总结,今天重点给大家介绍SpringBoot配置logback.xml 多环境的操作步骤,要实现多环境的配置,主要是依赖于springboot的application.yml文件去实现,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • java实现python session功能代码实例

    java实现python session功能代码实例

    这篇文章主要介绍了java实现python session功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论