Java继承构造方法的访问特点「图文分析」

Java继承构造方法的访问特点:

 

1、子类构造方法中有一个默认隐含的super()调用,所以一定是先调用的父类构造,后执行的子类构造

2、子类构造可以通过super关键字来调用父类重载构造

3、super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造

4、子类必须调用父类构造方法,不写则默认瘾式赠送一个super();写了则用写的指定的super调用,super只能有一个,还必须是第一个

 

 

详细:

   1、子类构造方法中有一个默认隐含的super()调用,所以一定是先调用的父类构造,后执行的子类构造

瘾式调用super()方法如图上图所示

2、子类构造可以通过super关键字来调用父类重载构造

在此之前先来看一个案例

我在无参构造方法的基础上添加一个 int num 使其称为一个有参构造,结果编译器报错了

原因是Zi在调用Fu类的无参构造方法的时候,Zi类中编译器会默认送一个super()方法,使其调用Fu类的无参构造方法,现在,无参构造方法的基础上添加一个 int num 使其称为一个有参构造后,结果编译器显示的错误如下

There is no default constructor available 'com.baidu1.Fu'

翻译过来就是:没有可用的默认构造函数'com.baidu1.Fu'

用人的话来说,在com.baidu1这个包下的Fu类没有可以使用的构造方法

解决的办法就是重载一个父类无参构造方法,或者用super()带参调用Fu类的有参的构造方法

第一种,重载一个父类无参构造方法

这个方法依然是调用的无参构造

第二种方法,用super()带参调用Fu类的有参的构造方法

这种方法是调用Fu类的有参构造,因为要传参数啦

3、super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造

演示第一个错误的写法

错误原因:只有子类构造方法才能调用父类构造方法,普通方法是不能调用的

 

演示第一个错误的写法

来看一下错误提示:

Call 'super()' must be first statement in constructor body

翻译:调用“super()”必须是构造函数体中的第一个语句

 

================================

注意:调用“super()”必须是构造函数体中的第一个语句,

翻译是说的第一个语句,而不是编译器中的构造方法的第一行,这个有很大的区别

下面这样依然报错

语句应该是以 ; 结尾的,语句应该是以 ; 结尾的,语句应该是以 ; 结尾的

说三遍

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值