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 }
对于静态内部类来说,它是输入类的,而不是实例的,所以更加无法被继承啦,但是也可以在类中定义一个内部类类型的成员变量实现套娃~
本文来自博客园,作者:康舒服冰红茶,转载请注明原文链接:https://www.cnblogs.com/pong137/p/13688126.html
欢迎转载,但请注明「作者」和「原文地址」。转载请在文中保留此段,感谢您对作者版权的尊重。如需商业转载或刊登,请联系作者获得授权。