如何理解多態(tài)

定義:不同類的對象對同一個消息作出不同的響應(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)系,即解耦。

舉例:

你定義了一個接口,功能是存儲文件。定義了一個下載工具類用來存儲下載的文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容