Thinking In Java 学习笔记 8.多态

本文探讨了Java中多态的概念及其实现方式,包括前期绑定和后期绑定的区别。阐述了如何通过多态实现接口与实现的分离,并介绍了封装、向上转型等概念。此外,还讨论了静态方法、final方法与多态性的关系。

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

多态(动态绑定/后期绑定/运行时绑定)通过分离做什么和怎么做,从另一角度将接口与实现分离。 默认前期绑定
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。
前期绑定:在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。
后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定。实现后期绑定,需要某种机制支持,以便在运行时能判断对象的类型,调用开销比前期绑定大。
Java中的static方法和final方法(private属于final方法)属于前期绑定,子类无法重写final方法,成员变量(包括静态及非静态)也属于前期绑定。除了static方法和final方法(private属于final方法)之外的其他方法属于后期绑定,运行时能判断对象的类型进行绑定。
封装通过合并特征和行为来创建新的数据类型。
实现隐藏则通过将细节私有化把接口与实现分离开来。
向上转型、忘记对象类型
缺陷:
子类不能覆盖父类private方法
静态方法的行为不具备多态性,静态方法是与类(而不是对象)相关联的

构造方法不同于其他方法,构造方法是static方法,static隐式声明

先调用基类构造器
然后按声明顺序调用成员的初始化方法
再调用子类的构造器主体

协变返回类型

运行时类型检查(RTTI)
向下转型 如果类型正确,转型成功;
类型错误,返回ClassCastException(类转型异常)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值