【多态-灵活性】
疯狂java讲义149
概念
允许不同的对象对同一种消息做出响应
同一个接口,使用不同的实例而执行不同操作
多态的条件
a. 要有继承
b. 要有方法重写
c. 要有父类引用子类对象
引用和对象的关系
-> 遥控器和空调
好处
多态实现了程序的灵活性,继承自同一个父类的子类可以有不同的效果
多态中的属性的覆盖
实际上,子类覆盖的是父类的方法,属性并没有覆盖,子类和父类的属性同时存在
向上转型和向下转型
向上转型:父类引用指向子类对象, 是一种安全的转型,缺点是不能使用子类独有的功能
向下转型:子类引用 父类引用(实际指向的是子类对象)
是一种不安全的转型,可能会导致类型转换异常
* 如果要保证不出现类型转换异常,必须要在转型之前 instanceof 关键字判断
语法:
String a="abc";
a instanceof String
多态的内存分配情况
【final关键字】
1. 修饰基本类型数据时,只能赋值一次(值不能改变)
2. 修饰引用类型数据时,引用不能指向其他对象
3. 修饰方法,表示方法不能被重写(覆盖)
4. 修饰类,表示该类不能有子类