先来看一道面试题:
java中关于继承的描述正确的是()
A、一个子类只能继承一个父类
B、子类可以继承父类的构造方法
C、继承具有传递性
D、父类一般具有通用性,子类更具体
正确答案: A C D
子类不可以继承父类的构造方法,只可以调用父类的构造方法。
子类中所有的构造函数都会默认访问父类中的空参数构造函数,这是因为子类的构造函数内第一行都有默认的super()语句。super()表示子类在初始化时调用父类的空参数的构造函数来完成初始化。一个类都会有默认的空参数的构造函数,若指定了带参构造函数,那么默认的空参数的构造函数,就不存在了。这时如果子类的构造函数有默认的super()语句,那么就会出现错误,因为父类中没有空参数的构造函数。
因此,在子类中默认super()语句,在父类中无对应的构造函数,必须在子类的构造函数中通过this或super(参数)指定要访问的父类中的构造函数。
PS:方法没有继承一说,只有重载和重写