定義:不同類的對象對同一個消息作出不同的響應(yīng)。




解釋:見如下代碼
不同類的對象:子類cat和子類dog
同一個消息:調(diào)用eat()方法
不同的響應(yīng):分別為 cat eat 和 dog eat
//父類Animalpublic class Animal {
public void eat(){
System.out.println("animal eat");
}
}
//子類Cat
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("cat eat");
}
}
//子類Dog
public class Dog extends Animal{
@Override
public void eat() {
System.out.println("dog eat");
}
}//測試
public class TestController { public static void main(String[] args) { Animal animal1 = new Cat(); Animal animal2 = new Dog(); animal1.eat(); animal2.eat(); }}
結(jié)果:
cat eat
dog eat
由此引出多態(tài)存在的三個條件
多態(tài)存在的三個條件
1.有繼承關(guān)系
Cat和Dog繼承Animal
2.子類重寫父類的方法
Cat和Dog重寫父類Animal的eat方法
3.父類的引用變量指向子類對象
Animal animal1 = new Cat();
Animal animal2 = new Dog();
多態(tài)的作用
消除類型之間的耦合關(guān)系,即解耦。
舉例:
你定義了一個接口,功能是存儲文件。定義了一個下載工具類用來存儲下載的文件