关于继承时构造方法的问题

1、在一个类中,如果不定义构造函数,都会有一个默认的无参构造函数

2、如果在一个类中定义了一个有参数的构造函数,那原来那个无参的构造函数就没了,你可以手动把无参的也定义出来

3、当子类继承父类时,子类的构造函数的第一行都会通过super();来默认调用父类的无参构造函数

4、当父类中定义了一个有参的构造函数,而没有把无参的构造函数明确出来,这样父类中无参构造函数就没了,当子类在

继承父类的时候,子类的构造函数第一行通过super();找不到父类的无参构造函数,就会报错

5、在4的基础上,要想不报错,就需要在子类构造函数的第一行通过super(int x)来显式调用父类的有参构造函数,或者通过this来调用

子类中的其他构造函数,其他构造函数调用父类的构造函数,这样通过其他构造函数就间接的调用了父类的构造函数

6、不管怎么说,子类构造函数必须要调用父类的构造函数(有参或无参),可以自己调,也可以通过兄弟构造函数间接调

原文地址:https://www.cnblogs.com/zhuangwf/p/5148867.html