java多态机制
引用数据类型转换
有继承关系的两个类之间的操作
向上转型(upcasting)和向下转型(downcasting)
子类型→父类型
父类型→子类型
对象的数据类型用父类表示->也就是说对象的数据类型向上转换(向上转型)
对象的数据类型由父类强制为对象的类型本身->也就是说对象的数据类型向下转(向下转换)
不管是向下转型还是向上转型,大前提都得是两个有继承关系的类。
多态
“多态"是面向对象中使用最为灵活,功能最为强大,非常重要的一个特性,简单理解“多态”就是多种形态,多种角色。举个现实中的例子: 笔者可以有多种角色(形态)。比如在老婆面前,我是"老公";在老爸面前,我是"儿子";在儿子面前,我是“老爸”;在学生面前,我是"老师”。"我"具有多种形态,对于"我"的不同形态,我将会说不同的话,做不同的事。
形成多态的三个必要条件
- 必须要有继承或者实现关系。
- 必须要有方法的重写。
- 父类的引用指向子类对象。
多态就是一个对象的多种数据类型。
在多态的语法中,只能调用子类对象重写之后的方法。
instanceof关键字
**作用:**用来判断某个对象可以使用哪些类型来表示。
- 结果为true表示这个对象可以使用相应的类型表示
- 结果为false表示这个对象不能用相应的类型表示
语法:
对象名 instanceof 数据类型
结果为布尔类型
示例: boolean result1 = me instanceof Teacher;