面向对象的三大特征之多态

55 阅读1分钟

一、什么是多态?

就是同一个对象在不同情况下展现的不同形态,对象的多种形态。

1.1 格式:多态的前提是存在继承/实现关系下的

在Car继承Animal的前提下

(左边是父类,右边是子类)

Animal animal = new Cat();

1.2多态中成员变量和成员方法访问特点

在访问成员变量时:

编译看左边,运行看左边

原因:成员变量是没有多态的,谁调用就找谁

在访问成员方法时:

编译看左边,运行看右边

原因:成员方法是有多态性的,有方法的重写

多态的优缺点

好处:提高了代码的扩展性,在方法中,使用父类型作为参数可以接收所有子类对象

缺点:不能使用子类所特有的功能

多态的转型

父子类型相互转换:

子转父:向上转型(自动类型转换)

父转子:向下转型(强制类型转换)

只有父转子后才能调用子类独有的方法

image.png

注意:

在转换时可以通过【instanceof】关键字进行判断,转换类型与真实的对象类型不一致时会报错,只有转换为真正的子类类型才能调用子类独有的功能。