多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
多态存在的三个必要条件:
- 继承
- 重写
- 父类引用指向子类对象:
Parent p = new Child();
向上转型:
- 本质:父类引用指向子类对象
- 语法:父类类型 引用名=new 子类类型()
- 特点:可以调用父类所有属性和方法,但是得遵守访问权限,子类特有方法和属性不能调用,因为编译类型决定调用那些成员。
我们使用向上转型时,不能调用子类特殊成员,所以我们使用向下转型就可以调用子类特殊成员。
向下转型:
- 本质:类似于强制类型转换,但前提是父类引用类型必须是已经指向了当前目标类型的对象。即父类引用已经指向了子类对象,才能进行向下转型。
- 特点:可以调用子类所有成员