类的继承是存在局限性的,一个 子类只能继承一个父类,但是可以多重继承,多重继承就是先让B类继承A类,之后再让C类继承B类。
calss A{} //这是父类
class B extends Af{; //此时 B类具备了A的操作
class C extends B{}; //此时 C类有A类和B类的所有操作
DEMO:多重继承
此时C类就继承了A类和B类的属性以及方法,其实上在实例化子类的时候会调用父类的构造方法(虽然子类不能继承父类的构造方法,但是在实例化子类的时候会默认调用),而且默认调用的是无参构造方法。
DEMO:调用父类的构造方法
通过上面的错误提示就可以知道实例化子类的时候一定要先调用父类的构造方法,默认调用的是无参数构造方法,此时如果提供了有参数构造方法,那么我们要将无参数构造方法显示的定义。
DEMO:无参构造方法调用
知道了实例化子类的时候需要调用父类的无参构造方法,如果要调用父类的有参数构造方法呢?此时需要使用到一个新的关键 字“super
DEMO:调用有参数构造方法
以上就是构造方法在子类和父类之间调用的关系,你要清楚。
总结:
1、继承有单继承的局限(一个子类只能有一个父类),但是可以多重继承
2、在实例化子类的时候会先调用父类的构造方法(默认调用的是无参数构造,如果要调用有参数构造需要使用关键字super实现)
3、如果是多重继承,那么实例化子类的时候最先调用的是最高父类的构造方法,依次往下
有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!
欢迎关注微信公众号:码邦主