关于内部类是否会被覆盖的理解(thinking in java )
1 package thinkingDemo; 2 /* 3 * 4 * 关于嵌套类覆盖问题 5 * 6 */ 7 class Egg2 { 8 protected class Yolk{ 9 public Yolk(){ 10 System.out.println("Egg2.Yolk()"); 11 } 12 public void f(){ 13 System.out.println("Egg2.Yolk.f()"); 14 } 15 } 16 private Yolk y = new Yolk() ; 17 public Egg2(){ 18 System.out.println("New Egg2()"); 19 } 20 public void insertYolk(Yolk yy){ 21 y = yy ; 22 } 23 public void g(){ 24 y.f() ; 25 } 26 } 27 class BigEgg2 extends Egg2 { 28 public class Yolk extends Egg2.Yolk { 29 public Yolk(){ 30 System.out.println("BigEgg2.Yolk()"); 31 } 32 public void f(){ 33 System.out.println("BigEgg2.Yolk.f()"); 34 } 35 } 36 public BigEgg2(){ 37 insertYolk(new Yolk()) ; 38 } 39 } 40 public class NestClassOverride { 41 public static void main(String[] args) { 42 Egg2 e2 = new BigEgg2() ; 43 e2.g() ; 44 } 45 }
执行结果:
Egg2.Yolk()
New Egg2()
Egg2.Yolk()
BigEgg2.Yolk()
BigEgg2.Yolk.f()
由此可得: 内部类不会被覆盖
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。