一.类型转换
向上转型————子类转化为父类,自动进行类型转换。
上转型对象不能操作子类新增的成员变量和方法。
上转型对象可以操作子类继承或重写方法的成员变量和方法。
如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。
Pet pet = new Dog(); //自动类型转换
向下转型————父类转换为子类,结合instanceof运算符进行强制类型转化。
instanceof 运算符:instanceof通常和强制类型转换结合使用。
二.如何实现多态
1.实现多态的两种方式
使用父类作为方法形参实现多态。
使用父类作为返回发返回值实现多态。
2.使用多态实现思路
编写父类,
编写子类,子类重写父类方法,
运行时,使用父类的类型。
3.使用父类作为方法返回值实现多态
使用父类作为方法返回值
实现思路:
在Master类中添加领养方法getPet(String typeld)
创建测试类,根据主人选择宠物类型编号来领养宠物
public class Master{ //主人类
public Pet getPet(String typeld){ //使用父类作为返回值类型
... ...
}
}
三.使用多态的好处
多态可以减少类中代码量,可以提高代码的可扩展性和可维护性。
四.引用变量的两种类型
1.编译时类型(一般是一个父类)
由声明时的类型决定。
2.运行时类型(运行时,具体是哪个子类据是哪个子类)
由实际对应的对象类型决定。
五.多态的存在主要有3个必要条件
要有继承,要有方法重写,父类引用指向子类对象。