父类的构造器只能调用,无法继承。

1,当父类没有任何构造器时,会默认自动生成一个无参构造器,子类实例化时就算没有super()也会默认先调用父类的无参构造器。

2,当父类有显式的无参构造器时,子类实例化时就算没有super()也会默认先调用父类的无参构造器。

3,当父类有有参构造器了,如果没有显式地写入无参构造器,系统也不会自动生成无参构造器,此时子类构造器的首行必须要调用父类的有参构造器,有以下方式:
① 用super(…)直接调用父类的有参构造器
② 用this(…)间接调用父类的有参构造器
如下
JAVA父子类构造器问题子类构造方法必须指定调用了父类的哪一个构造方法:
JAVA父子类构造器问题

子类构造方法Student(String name,String id)直接调用了父类的有参构造方法Person(String name),而子类构造方法也因为有this(name,id);而调用了上面的另一个子类构造方法而间接调用了父类的有参构造方法Person(String name)。

总之,子类必须调用父类的构造方法。

相关文章: