多态
概述
一个对象,多种形态,即同一个对象,在不同时刻表现出来的不同形态
使用的前提
有继承或者实现
有方法的重写
有父类引用指向子类对象
成员访问特点
成员变量
编译看父类,运行看父类
成员方法
编译看父类,运行看子类
好处与弊端
好处
提高代码的扩展性。方法定义时,把父类类型作为参数,在使用时,可以接受任意子类类型参与操作
坏处
不能使用子类特有的成员
多态转型
向上转型
父类引用指向子类对象就是向上转型
向下转型
格式:子类类型 对象名 = (子类类型)父类引用;
转型的风险和解决方案
风险
如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现ClassCastException异常;
解决方案
使用instanceof关键字
格式
变量名 instanceof 类型
含义:
判断关键字左边的变量,是否是右边的类型,返回boolean类型结果