天天看点

多态概述

同一个对象,在不同时刻表现出来的不同形态

举例:猫

我们可以说猫是猫:猫cat = new猫();

我们也可以说猫是动物:动物animal = new猫();

这里猫在不同的时刻表现出来了不同的形态,这就是多态

继承

重写

父类引用指向子类对象:Parent p = new Child();

多态概述
成员变量: 编译看左边,执行看左边 成员方法: 编译看左边,执行看右边 静态方法:编译和运行都看等号左边

为什么成员变量和成员方法的访问不- -样呢?

因为成员方法有重写, 而成员变量没有

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态的好处: 提高了程序的扩展性

具体体现:定方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作

多态的弊端: 不能使用子类的特有功能

解决了多态的弊端

向上转型

从子到父

父类引用指向子类对象

向下转型

从父到子

父类引用转为子类对象