向上转型:
将子类转化为父类。
向上转型的作用:
向上转型是为了用父类变量来接受不同的子类对象,调用方法的时候传参父类对象,可以调用子类里不同的重写方法,得到不同的结果。
//父类,动物类
abstract class Animal {
abstract void eat();
}
//动物类的子类,猫类
class Cat extends Animal {
public void eat() {
System.out.println("吃鱼");
}
public void work() {
System.out.println("抓老鼠");
}
}
//动物类的子类,狗类
class Dog extends Animal {
public void eat() {
System.out.println("吃骨头");
}
public void work() {
System.out.println("看家");
}
}
//测试
public class Test {
public static void main(String[] args) {
show(new Cat()); // 向上转型,以 Cat 对象调用 show 方法
show(new Dog()); // 向上转型,以 Dog 对象调用 show 方法
Animal a = new Cat(); // 向上转型
a.eat(); // 调用的是 Cat 的 eat
}
public static void show(Animal a) {
// 以父类“动物