多态
概念:相同行为,不同的实现
静态多态:编译时,系统就能决定调用哪个方法
动态多态:运行中系统才能动态确定方法指向的对象
类型转换
基本数据类型
引用数据类型
只有有继承关系的,才可能进行类型转换
向上转型和向下专型
父类 变量= 子类对象 大的变量 = 小得变量(无风险)
子类 变量 = (子类) 父类对象或其他子类对象 小的变量 = 大的值(编译成功,运行报错)
子类 变量 = (子类) 该子类对象 编译成功,运行成功
结论:父类引用可一指向子类对象,而子类引用不可以指向父类对象
inetanceof关键字
为控制风险,应该先判断instanceof再做强转
语法:对象instancesof类型
动态绑定
当用父类引用指向子类对象时,如果我们调用被重写方法,会得到子类重写的效果,因为:这个对象本身及时一个子类对象,所以他的实现一定是子类自己的实现
多态的主要应用—异构集合
基本数据类型没有父类,所以不能放入Object
创建一个不是同一类型,但是有同父类的数据集合。不同对象的集合