输出应该是:
B
C
5作者: 施大勇 时间: 2013-8-5 20:00
class Super
{
int i=0;
public Super(String a)
{
System.out.println("A");
i = 1;
}
public Super()
{
System.out.println("B");
i += 2;
}
}
class Demo6 extends Super
{
public Demo6(String a)
{
//这里有一个隐式的super()调用父类中的无参构造方法。
System.out.println("C");
i = 5;
}
public static void main(String[] args) //程序从 这里开始了。。。
{
int i=4;
Super d = new Demo6("A");//父=子
System.out.println(d.i);
}
}
//new Demo06("A")-->public Demo06()-->Super() 从左向右看,代码流程从右向左来看。
//B--> Super.i=2--> C Demo.i=5 上一行执行完的值,输出时打印d.i,对于属性来说,
//是谁的对象就取出谁的值,所以取父类中的。
//最后结果为:
B
C
5 作者: 刘超152 时间: 2013-8-5 22:53
在Java中,子类必须调用父类的某个构造方法,如果子类没有指定调用父类的哪个构造方法,系统会隐式地调用父类的无参构造方法。