- 多态的三个前提条件:
- 继承
- 方法重写
- 父类引用指向子类对象
public class TestClass{
public static void main(String[] args) {
Animal animal1 = new Dog();
animal1.eat();
Animal animal2 = new Cat();
animal2.eat();
}
}
class Animal{
void eat() {
System.out.println("Animal needs to eat..");
}
}
class Dog extends Animal{
void eat() {
System.out.println("Dog likes eating bones..");
}
}
class Cat extends Animal{
void eat() {
System.out.println("Cat likes eating fishes..");
}
}
Output:
Dog likes eating bones..
Cat likes eating fishes..
父类引用animal1和animal2分别指向之类对象Dog和Cat,代码在运行时实现动态绑定,根据具体对象类型来确定调用哪一个eat()方法。