今天在学习JAVA的时候遇到了这样一个问题,在编写代码的时候,13行
Cb(int num){}的地方出现了一个Error:Implicit super constructor Ca() is undefined. Must explicitly invoke another constructor
仔细检查了一番,没找到什么问题,想着Cb继承Ca那不就是先调用父类Ca的构造函数吗,然后自己再跑一遍Cb的构造函数吗,结果不是15吗,怎么就出错了呢。找了半天资料在https://blog.csdn.net/dlf123321/article/details/53411539这位前辈的文章中找到了答案
class Ca{
int num = 1;
Ca(int num){
this.num = num;
System.out.print(this.num);
}
}
class Cb extends Ca{
int num = 2;
Cb(int num) {
this.num = num;
System.out.print(num);
}
public static void main(String[] args) {
Ca a = new Cb(5);
}
}
原来在JAVA中,子类继承父类,在new的时候,会默认调用父类的无参构造函数,这里父类Ca中已经有一个Ca(int num){},于是系