第三章 多态
1. 什么是多态
面对同一个方法,有不同的表现形式
多态必须在继承的基础上
2.向上转换(子类转换成父类类型)
只能执行从父类继承下来的方法,不能执行子类的特有方法
Pet pet=new Dog(); //父类 子类
3.向下转换(父类到子类的转换)
向下转型前必须先有向上转型,并转换成相应的子类才能转换成功
Pet pet=new Dog(); //向上转换 Dog dog=(Dog)pet; //向下转换(强制转换) //Penguin penguin=(Penguin)pet; 报错......
4. 实现多态的方法
-
使用父类作为方法的形参实现多态
public void feed(Pet pet){ // Pet pet=new Dog(); 向上转换 pet.eat(); //Dog中的eat()方法
-
使用父类作为方法返回值实现多态
public Pet getPet(){ Pet pet=null; pet=new Dog(); //向上转换 return pet; }
5. instanceof 运算符
表示判断一个对象是否属于一个类或实现一个接口
进行应用类型转换时,先通过 instanceof 运算符进行类型判断
6.多态的优点
-
可扩展性强
-
减少代码量