super

1.super是调用父类的构造方法,必须在构造方法的第一个
2.必须只能出现在子类的方法或构造方法中
3.super和this不能同时调用构造方法

super 代表父类对象的引用,调用父类的构造,只能在继承条件下使用
this 代表本身调用者这个对象,调用本类的构造,没有继承也能使用

子类调用父类属性
(左测试类 中子类 右父类)
在这里插入图片描述
这三种情况的name输出是不同的
第一个的name是左面main传递给它的参数,传递给它的名字垃圾
第二个this name是当前类的name 滑稽
第三个是super调用的父类的名字huaji
输出
在这里插入图片描述
子类调用父类方法
(左测试类 中子类 右父类)
在这里插入图片描述

第一个print调用的当前类的方法
第二个this.print调用的也是当前类
第三个super调用的父类的方法
输出
在这里插入图片描述
如果将父类中public改为private,通过super无法调用了,私有的无法被继承

构造器也有隐藏代码:调用了父类的无参构造
在这里插入图片描述
输出
在这里插入图片描述
左面测试类只new一个学生对象,右面的子类父类分别执行无参构造
先执行了父类,然后执行了子类,默认调用了父类的无参构造
在这里插入图片描述
相当于有一个默认的super调用了父类,而且调用父类的构造器super();必须放在子类构造器的第一行
在这里插入图片描述
否则这样会报错,this调用也是一样的,要放在第一行,所以super this不能同时调用

如果有参构造调用要显示的表示出来调用,写了有参,无参构造就没了,就无法调用了,如果不写就默认调用无参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值