class Super
{
int i=0;
public Super(String s)
{
i=1;
}
}
class Demo3 extends Super
{
public Demo3(String s)
{
super(s)
i=2;
}
public static void main(String[] args) {
Demo3 demo3=new Demo3("yes");
System.out.println(demo3.i);
}
}
//可以没有,针对你这程序来说是必须有带参数的构造函数super(s):因为你的父类构造函数是带参数的,jvm运行子类时默认是在构造函数第一行加 super()调用父类的构造函数,但是你的父类构造函数无参构造被你显示的带参数构造函数覆盖了,所以就调用不到父类构造函数类初始化子类,不能完成子类正常的初始化 |