多态是指一种事物表现出多种形态的特征。
java中的多态的体现:
- 方法的重载(Overload)
- 方法的覆盖(Override)
- 继承中的子类对象与父类对象的转型
类型转换:
- 向上转型
- 在继承关系中,子类对象转为父类类型的对象,叫向上转型,也叫上溯造型。
- 向上转型为隐式类型转换
- 注意:
- 在向上转型的过程中,会丢失子类中独有的属性和方法
- 向上转型后的父类类型的对象,如果用的方法被子类重写过,则调用的转型之前的子类重写的方法。
- 向下转型
- 在继承关系中,父类对象转为子类类型的对象,叫向下转型,也叫下溯造型。
- 向下转型为强制类型转换
- 注意:
- 只有曾经向上转型过的对象才能向下转型
- 向下转型只能转为曾经的子类对象
多态存在的条件:
- 要有继承
- 要有重写
- 父类的引用指向子类对象
instanceof
- 用于判断某对象是某类的对象,返回值是boolean类型
- 语法:
对象名 instanceof 类型
向上或向下转型后的对象 instanceof 转型之前的类型 返回值是true。
向上或向下转型后的对象 instanceof 转型之后的类型 返回值是true。