本帖最后由 李新辉 于 2013-11-7 15:11 编辑
13.class Demo extends Super
14.{
15. static int i = 4; //在这里,子类和父类具有同名变量,如果没
16.
17.//这里没有定义 static int i = 4; 下面这个语句将给父类变量赋值 <==这个我了解,继承父类并重新赋值
18.//由于在子类中定义了 这个变量,所以下面语句赋值给本类中的i 而最后 <==这里本类中的 i 你指哪个?静态的还是父类继承来的非静态?
_
/|\
19.//打印的是父类中的 i |
|
20. public Demo (String a) |
|
21. { |
|
22. i = 5; <==你要明白这句赋值语句之前隐式的super()把父类的 i 已经继承过来了……
怎么会给本类的 i 赋值呢?
23. }
24. public static void main(String[] args)
25. {
26. Super d=new Demo("A"); //第一步
27. System.out.println(d.i); //第三步,打印父类中变量
28. }
29.}
|