super关键字的基本和细节

super代表父类的引用,可以用来访问父类的属性方法和构造器

用法:super.属性名; super.方法名; 【非private的属性和方法】

super(参数列表);【只能放在构造器的第一句,只能出现一句】

super不可以访问父类的private(私有的)属性和方法

细节:

1.调用父类构造器的好处:分工明确,父类的属性由父类自己初始化,子类的属性由子类自己初始化。

2.当子类和父类中有方法重名时,想访问父类的则必须用super。

没有重名时,有三种方法可以访问:super,this,直接访问。

this. 和 直接访问 这两种方法的规则:

使用他们两个时,是先去子类中找有没有要访问的方法和属性,有就访问,没有就向父类中去找。在父类中有的话就访问父类的,没有时继续向上层找父类的父类,一直到Object类。如果Object类中也没有时就会提示该方法或属性不存在。如果在找的过程中,找到了但是无法访问(比如父类的该方法或属性是用private修饰的)那么,就会报错,cannot access。

使用super. 去访问时的规则:

使用super. 访问时,它会直接去父类查找,跳过当前子类。其他规则一样。

3.super的访问不限于直接父类【注:如果父类中不存在就去父类的基类(上级类,就是父类的父类,不同的叫法)去查找】,如果本类和父类的基类有同名方法,也可用super去访问父类的基类中的方法。多个基类中都存在同名方法,那super的访问遵循就近原则。super的访问全都遵守访问权限的规则【例如:private修饰的属性和方法无法访问】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值