class Demo
{
public static void main(String[] args)
{
new Derived();//0
new Derived().display();//这句,输出结果是:0,22,0是Base类构造函数里的display输出的,但是这个display是Derived类里的display
//因为this 代表调用它的对象,而此时Derived类对象构造函数还没有执行,所以count是默认的0.
new Base().display();//结果2,2.第一个2是Base类的构造函数里的display输出的,第二个构造函数下面的display输出的。
}
}
class Base
{
int count =2;
public Base()
{
this.display();
}
public void display()
{
System.out.println(count);
}
}
class Derived extends Base
{
private int count =20;
public Derived()
{
count = 22;
}
public void display()
{
System.out.println(count);
}
}
说明:类实例化的时候,首先调用构造函数,所以你的主函数里的语句结果是类Derived的display()输出的,而这时候还没有赋值。 |