多态的理解

多态的必要条件
1、向上转型
父类引用指向子类对象,向上转型时,父类引用指向的对象还是父类的对象,只有子类重写了父类的方法,才能在向上转型后使用父类引用.父类方法名调用子类重写后的方法.

Animal a = new Dog()

2、在子类中重写父类方法
满足这两个条件后就能使用同一个父类方法调用不同子类的重写方法
父类

public class Animal {
        public void show() {
        System.out.println("父类show());

}

子类1

public class Dog extends Animal {
    public void show() {
    System.out.println("Dogshow());
    }
}

子类2

public class Cat extends Animal {
    public void show() {
    System.out.println("catshow());
    }
}

Test类

public class Test{
    public void main(String[] args) {
//        Animal a = new Dog();
//        Animal b = new Cat();
//        print(a)
//        print(b)
        print(new Dog());//输出Dogshow()
        print(new Cat());//输入catshow()
    }
    public void print(Animal a) {
        a.show();
}
原文地址:https://www.cnblogs.com/zhz-8919/p/10701901.html