最近在看毕老师的JAVA入门视频。
其中有一题是这样的。
//14.写出程序结果
class Super1{
int i=0;
public Super1(String s){
i=1;
}
}
class Demo2 extends Super1{
public Demo2(String s){
i=2;
}
public static void main(String [] args){
Demo2 d=new Demo2("yes");
System.out.println(d.i);
}
//结果 :编译失败 ,因为父类中缺少空参数的构造函数Super1(){}, 或者子类中 通过super明确调用父类中有参数的构造方法.
}
虽然上面写了答案,但还是没怎么看懂。
父类中没有定义空参数的构造函数,java不是会自己加上去吗?
为什么父类中有了空参数构造函数就可以调用d.i,并且打印出2呢?
子类中通过super明确调用父类中有参数的构造方法,具体是怎么样的,代码怎么写?
有没有大神解惑啊? |
|