class Super
{
int i=0;
Super(){} //在父类中加个无参构造函数。
public Super(String s)
{
i=1;
}
}
class Demo extends Super
{
public Demo(String s)
{
Super(s); //或者在这里加个父类中自定义的有参构造函数
i=2;
}
public static void main(String[] args)
{
Demo d=new Demo("yes");
System.out.println(d.i);
}
}
当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。
当在类中自定义了构造函数后,默认的构造函数就没有了。
当子类继承父类的时候,子类中定义了构造函数,运行的时候必然先调用父类的构造方法,再调用自己的。如果父类中美定义构造函数,那么子类就不需要手动添加;如果父类定义了构造函数,那么子类要手动添加父类中指定的构造函数。子类中必须至少有一个构造函数添加了父类的构造函数。
|