子类到底能继承父类中的什么?

目录

子类到底能继承父类中的什么?如下图:

构造方法的继承原理:

成员变量的继承原理:

成员方法的继承


结构:

父类中有:成员变量,构造方法,成员方法。


首先我们指出两个误区: 


  • 子类到底能继承父类中的什么?如下图:

    1. 可知,构造方法无论是否私有都无法被子类继承
    2. 成员变量总能被继承(但需要注意的是:被private修饰的成员变量,随可被继承,但无法直接调用,而需要利用Set和Get方法)
    3. 成员方法非私有时可被继承,反之不可被继承

    • 构造方法的继承原理:

无法被继承,因为Java中要求构造方法的方法名要和类名一致,若被继承,构造方法名显然不与子类的类名一致,如下图。


  • 成员变量的继承原理:

父类中的成员变量age是private修饰的,虽然说可以被继承

但是不可直接调用,需使用set和get调用

    • 成员方法的继承

在说明成员方法的继承之前,先来介绍一下虚方法表:

虚方法表是从最顶层父类(Object)开始设立的,其中存储被非private,非static,非final修饰的方法,每创建一个子类就向后传递虚方法表,同时创建的子类中满足条件的成员方法也放入虚方法表。使得之后的子类在调用父类中的方法时可直接查找虚方法表,不用再去一个个父类中查找,大大提升性能。 虚方法表和方法重写之间的关联很大。

只有父类虚方法表中的方法才能被继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成果、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值