多态

42 阅读1分钟

多态是指在继承/实现情况下的一种现象,表现为:对象多态,行为多态,

多态的前提

有继承//实现效果;存在父类引用子类对象;存在方法重写

image.png

注意事项: 多态是对象,行为的多态,Java中的属性(成员变量)不谈多态。

image.png

使用多态的好处

在多态形式下,右边对象是解耦和的,更便于扩展和维护

People p1 = new Studens();

p1 = run();

定义方法时,使用父类类型的形参,可以接受一切子类对象,扩展性更强,更便利,

image.png

!!!多态下不能使用子类的独有功能

image.png

类型转化

自动类型转换:父类 变量名 = new 子类();

image.png

强制类型转换:子类 变量名 = (子类) 父类变量

image.png

instanceof:用于检查一个对象是否是一个类的实例或其子类

p指向的对象的真实类型是不是属于这个Students

image.png

强制转换的注意事项

存在继承/实现关系的就可以在编译阶段进行强制类型转换,编译阶段不会报错;

运行时,如果发现对象的类型与强制转换的类型不同,就会报类型转换异常(ClassCastException)错误出来。

instanceof关键字,判断当前对象的真是类型,在进行强制转换