多态(Polymoph)
多态,也称动态绑定,是指在执行期间(而非编译期间)判断所以用对象的实际类型,根据实际的类型调用相应的方法。
class Animal {
public void sing() {
System.out.println("A animal is singing...");
}
}
class Cat extends Animal {
public void sing() {
System.out.println("A cat is singing...");
}
}
class Dog extends Animal {
public void sing() {
System.out.println("A dog is singing...");
}
}
class Girl {
public Animal pet;
public Girl(Animal pet) {
this.pet = pet;
}
public void petSing() {
pet.sing();
}
}
public class Main {
public static void main(String[] args) {
Girl Lucy = new Girl(new Animal());
Lucy.petSing();
Lucy = new Girl(new Cat());
Lucy.petSing();
Lucy = new Girl(new Dog());
Lucy.petSing();
}
}
运行结果