// how is it call abstract class constructor when i create subclass object ?
abstract class D {
D() {
System.out.println("called abstract class D constructor");//print
}
}
public class DemoAbs extends D {
DemoAbs() {
System.out.println("called DemoAbs class constructor");
}
// how is it call abstract class constructor when i create subclass object ?
public static void main(String[] args) {
DemoAbs d=new DemoAbs();
}
}
答案 0 :(得分:2)
它被称为构造函数链接:
构造函数中的第一行是super()
,除非您明确调用this()
或this(<with args>)
或super(<with args>)
你应该通过:
答案 1 :(得分:0)
每当调用构造函数时,它首先调用super()
,这意味着调用超类的构造函数来初始化超类中的所有变量,之后执行子类的其余构造函数。 / p>
答案 2 :(得分:0)
每当您创建子类的对象时,子类的构造函数将使用super()隐式调用超类构造函数。如果你的父类构造函数接受参数,那么显式地需要调用super(params ...); 否则它将显示编译错误。