一、多态的前提
1,要有(继承/实现)关系
2,要有方法重写
3,要有父类引用,指向子类对象
例如:
二、多态中成员访问特点
1,构造方法:同继承一样,子类会通过super访问父类构造方法
2,成员变量:编译时看父类,执行时也看父类
3,成员方法:编译时看父类,执行时看子类(因为成员方法有重写,而成员变量没有。)
三、多态的好处和弊端
1,提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,该方法就可以接收这父类的任意子类对象
例如:
2,多态的弊端:不能调用子类的特有成员内容。
四、多态中的转型
1,向上转型
从子到父:父类引用指向子类对象
2,向下转型
从父到子:父类引用转为子类对象
例如:
五、多态中转型存在的风险
概述:如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现ClassCastException
使用 instanceof 解决强转出现的问题。判断关键字左边的变量,是否是右边的类型,返回boolean类型