1.概念
oop面向对象的三大特征之一,也是最核心的,它表示方法和对象具有多种形态,建立在封装和继承的基础之上。
2.实现
方法的重载和重写是多态的表现
解释:方法的重载是同名方法根据传入参数不同,执行不同的代码。
重写是调用同一个方法,但是根据调用的对象不同,执行不同的代码
对象的多态(难点)
解释:同一个对象在不同时刻表现不同状态
1⃣️一个对象的编译类型和运行类型可以不一致
2⃣️编译类型在创建对象时就确定,不能改变
3⃣️运行类型可以改变
4⃣️编译类型看=左边,运行类型看=右边
3.使用细节
1⃣️一个对象存在编译类型和运行类型,编译类型看等号左边,运行类型看等号右边
2⃣️前提是两个类存在继承关系
3⃣️向上转型,语法:父类类型 对象名 = 子类对象
可以调用父类的所有成员,不能调用子类的特有成员,但是需要遵循访问权限规则,最终运行效果看子类具体实现
4⃣️动态绑定机制,当调用对象方法,方法和该对象的运行类型绑定,看运行类型,当调用属性时,不存在形态绑定,哪里声明哪里使用
5⃣️向下转型,语法:子类类型 对象名 = (子类类型)
父类对象名,子类类型必须是父类对象名指向的目标类型,可以调用子类特有成员
6⃣️instanceof 比较运算符 ,判断对象运行类型是否是某个类型或者是其子类型