修饰符0307

本文详细介绍了Java中的继承关系,重点讲解了protected属性的访问权限以及多态的两个主要类别:编译时多态(重载)和运行时多态(重写)。讨论了向上转型和向下转型的概念,解释了父类引用可以指向子类实例的原因,并通过instanceof关键字进行类型判断。此外,还探讨了动态绑定的概念及其在程序设计中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修饰符

继承关系中,在不同包子类中可以访问protect属性

多态分类

1.编译时多态

调用引用类型的方法,通过重载实现

2.运行时多态

调用子类重写后的方法,通过重写实现

向上转型和向下转型

1.向上转型

小类型转大类型

2.向下转型

大类型转小类型(转型判断 instanceof)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJviZ3F2-1646661433551)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220307180341675.png)]

父引子实这样做有什么意义呢

​ 因为子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特, 定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。

所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的; 同时,父类中的一个方法只有在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;(即只能访问父类中声明的方法) 对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。也可以叫做动态绑定。

动态绑定是指”在执行期间(而非编译期间)“判断所引用对象的实际类型,根据实际的类型调用其相应的方法。

父类引用为什么可以指向子类的实例

因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造函数.所以z可以调用父类的方法.

instanceof语法
boolen flag = 对象引用 instanceof 数据类型;//判断对象是否为此类型

ag = 对象引用 instanceof 数据类型;//判断对象是否为此类型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值