JAVA中子类会不会继承父类的构造方法

总结:

继承中的子类实例化的过程:

--->先调用父亲的构造方法,然后再执行子类的构造方法

1.子类不能继承父类的构造函数,但是可以调用父类的构造函数

2.如果父类没有定义构造函数,系统会默认定义一个无参无返回值的构造函数,子类继承时无需在子类构造函数中==显式 == 调用super();
(即子类的构造函数中默认调用父类的无参构造函数,只不过第一行代码:super();一直被省略了)。

3.如果父类有有参构造函数,则子类必须在自己的构造函数中显示的调用父类的构造函数即super(参数名)。
如果父类的构造函数只有一个,且修饰符是private,则不可以被继承。

4.如果子类的某个构造函数想要调用父类的其他带参构造函数,在构造函数第一行添加super(args1,args2…);(参数的多少根据想调用父类构造函数的形参而定)

5.如果子类的构造函数在第一行super(args1,args2…);调用了父类的其他有参构造函数,那么子类的该构造函数不会再调用父类的默认构造函数。


Part2

子类实例化对象时,会先调用父类的构造方法,如果子类的构造方法没有显式的调用父类的构造方法,默认调用super();
子类要使用父类有参的构造方法,使用super(参数)形式,且super()必须是子类构造方法中的第一行语句。
如果父类没有不带参数的构造方法,且子类的构造方法中有没有显式的调用父类其他构造方法,则java编译器会报错

父类无参+子类无参=两者都输出(父类先、子类后)
父类(无参)++子类有参(没有super父类有参)=父类无参+子类有参

父类(无参+有参)++子类无参=父类无参+子类无参
父类(无参+有参)++子类有参(super父类有参)=父类有参+子类有参【用无参会报错,因为子类没写无参,但写了有参,不默认生成无参了】
父类(无参+有参)++子类有参(没有super父类有参)=父类无参+子类有参
父类(无参+有参)++子类空=父类无参【默认生成无参了】


父类(有参)++子类无参=报错


另外:方法是没有继承一说的,只有覆写或者重载,类和类之间才能叫继承。

参考:

JAVA中子类会不会继承父类的构造方法_NathanniuBee的博客-CSDN博客

java 子类的构造函数都必须要super();吗?_Lawliet0307的博客-CSDN博客

  • 18
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值