三、多态
1.理解:
(1)多态:父类型的引用存储不同子类型的对象
父类类名 引用名 = new 子类类名();
引用 对象
父类型 子类型
(2)使用父类型的引用调用属性或是方法,只能调用父类中定义的属性和方法
(3)如果子类覆盖了父类中方法,则优先使用子类覆盖后的方法
2.引用之间的转换:
(1)父类型的引用赋值给子类型的引用,需要强制类型转换
大类型 小类型
a.子类类名 引用名 =(子类类名)父类型的引用名;
b.强制类型转换的结果:
i.实际存储的对象类型和要转换类型一致,编译+运行通过
ii.实际存储的对象类型和要转换的类型不一致,编译通过,运行报错,错误信息为:
java.lang.ClasscastException(类型转换异常)
(2)子类型的引用 赋值给父类型的引用,无需强转,直接赋值,体现多态
(3)没有继承关系双方,不允许相互赋值,强制类型转换也不允许