Super d = new Demo("A");这句不是多态吗,super的引用d指向之类Demo的对象啊,
System.out.println(d.i);所以输出的应该是父类的成员变量i啊,但是输出的却是子类的成员变量i,
所以贴出来希望大家解惑(⊙o⊙)… 作者: 沈浩 时间: 2013-4-21 14:21
因为i是Super成员变量
当执行到这一句
System.out.println("C");
i=5;
所以结果会是5;
你可以在Demo中定义一个这样的成员变量那么打印结果就是你想要的了 作者: 晓风妮子 时间: 2013-4-21 14:23
class Super
int i;
public MultiStatementDemo(String a)
{
System.out.println("C");
i = 5;
//super.i=5;
}
2.Demo类加上i了,此时i=5,其实省略了this关键字,指的是Demo类的成员变量i,就是对Demo类中成员变量赋值,输出d.i时,调用的还是父类的,只是父类的i在父类