class Super{ int i=0; public Super(String s) { i=1; } public Super() { i+=2; }}class Demo extends Super { public Demo(String s) { i+=5; } public static void main(String[] args) { int i=4; Super d=new Demo("YES"); System.out.println(d.i); }}打印的结果是7,就是i等于7。但是,我记得一个多态的引用,父类引用指向子类对象用来调用成员变量,那么调用的应该是父类下的 i 呀,为什么这里输出结果是7呢?那么这里调用的是父类的 i 吗?父类的 i 变为了7?
1 回答
慕粉1469888185
TA贡献1条经验 获得超0个赞
子类中的int i = 4;
因为没有传入参数列表所以没有意义
然后子类中的构造函数,并没有super 所以默认super调用为空的构造函数
所以i=0+2+5 = 7
添加回答
举报
0/150
提交
取消