• Java学习之继承的奇思妙想


    刚刚想到如果静态内部类继承了父类,那岂不是可以无限套娃了,然后就动手试了一下

    public class InsideClass {
    
        class $InsideClass extends InsideClass {
    
        }
    
        public static void main(String[] args) {
            $InsideClass c = new InsideClass().new $InsideClass();
            $InsideClass s = c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c;
        }
    }

    然后发现行不通,这说明单单在类中定义一个内部类,它并不输入父类的成员。在类中定义一个内部类类型的成员变量时,就可以无限套娃了。然而没有实例化里面还是空哒!什么都没有哇!

     1 package study;
     2 
     3 public class InsideClass {
     4     $InsideClass c;
     5 
     6     class $InsideClass extends InsideClass {
     7 
     8     }
     9 
    10     public static void main(String[] args) {
    11         $InsideClass c = new InsideClass().new $InsideClass();
    12         $InsideClass s = c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c;
    13         System.out.println(s);// java.lang.NullPointerException at study.InsideClass.main(InsideClass.java:12)
    14     }
    15 }

    对于静态内部类来说,它是输入类的,而不是实例的,所以更加无法被继承啦,但是也可以在类中定义一个内部类类型的成员变量实现套娃~

    未经授权商用禁止,转载请标明出处,附上原文链接 个人能力有限,若有不足之处欢迎各位大佬指出
  • 相关阅读:
    Servlet 处理HTTP请求
    Servlet基础知识
    JavaWeb基础知识点①请求响应②comcat③类和类的关系
    MySQL子查询
    聚合与分组
    表联接
    LVS+KEEPALIVED
    tar命令详解
    mysql 安装
    mysql两种备份方法总结:mysqldump 和 xtrabackup
  • 原文地址:https://www.cnblogs.com/pong137/p/13688126.html
Copyright © 2020-2023  润新知