定義:不同類的對(duì)象對(duì)同一個(gè)消息作出不同的響應(yīng)。
解釋:見(jiàn)如下代碼
不同類的對(duì)象:子類cat和子類dog
同一個(gè)消息:調(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");
}
}//測(cè)試
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)存在的三個(gè)條件
多態(tài)存在的三個(gè)條件
1.有繼承關(guān)系
Cat和Dog繼承Animal
2.子類重寫(xiě)父類的方法
Cat和Dog重寫(xiě)父類Animal的eat方法
3.父類的引用變量指向子類對(duì)象
Animal animal1 = new Cat();
Animal animal2 = new Dog();
多態(tài)的作用
消除類型之間的耦合關(guān)系享甸,即解耦征唬。
舉例:
你定義了一個(gè)接口泳挥,功能是存儲(chǔ)文件琅关。定義了一個(gè)下載工具類用來(lái)存儲(chǔ)下載的文件