继承应该是拥有且可访问

在学习《Java核心技术卷1》的继承章节中,在p159有一句注释:“声明为私有的类成员不会被这个类的子类继承”。

用Manager类继承Employee类这个例子来解释,学者以为:“子类Manger类拥有父类的私有字段和方法却无法访问和调用,这不能说子类继承了这些字段与方法,这是仅存在于子类拥有的层面(体现在内存上可能是会为这些字段开辟空间但不可直接访问)。”

那如果我在子类中希望访问拥有的超类的方法,那将用super这个特殊的关键字来给编译器指示调用超类的方法。它的用法几乎和this一样,但是却和this有着本质的差别,this在类的方法中是一个隐式参数,它用于引用当前调用方法的对象(把这个对象引用拷贝一份)。而super仅仅是指示编译器调用超类的方法。

super关键字还有一个重要的功能。在构造子类对象时,使用构造器是必然的。那么在子类中那些不可访问的字段怎么访问呢?我们可以用在子类构造器的第一行中使用 super(可选参数);语句来进行初始化。然后对子类中特有的字段进行初始化。这样子类就可以成功的构造了。

先写到这里,有误的部分还请不吝赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值