JAVA 多態

多態: 一種事物的多種形態
好處: 增強代碼可維護性 可擴展性
弊端: 不能直接調用子類的特殊方法
規則(前提)
1.類與類之間要有聯繫
2.要有方法的重寫
3.父類的引用指向子類的對象

class Animal{
    public void eat() {
        System.out.println("吃食物");
    }
}

class Cat extends Animal{
    public void eat() {
        System.out.println("貓吃魚");
    }
}

可以看到這裏創建了兩個類 動物是父類 貓是子類

Animal animal = new Cat();
        a1.eat();

這裏就是父類的引用指向子類的對象
打印出來的也就是貓吃魚

多態時 當父類引用調用成員變量的時候
如果父類中沒有這個成員變量 編譯器不會通過
運行時 訪問的是父類中的這個成員變量

多態時 調用成員方法的時候
編譯器還是看父類有沒有這個成員方法
但運行時是運行的子類的這個方法
這裏寫圖片描述

向上轉型: 子類賦值給父類
向下轉型: 父類賦值給父類(必須先前有過向上轉型)

instanceof 是關鍵詞
用來判斷 關鍵詞左邊是否屬於右邊那個類的對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章