2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

多態是什么意思?案例演示多態的運行過程

更新時間:2021-05-18 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

在Java中,多態是指不同類的對象在調用同一個方法時所呈現出的多種不同行為。通常來說,在一個類中定義的屬性和方法被其他類繼承或重寫后,當把子類對象直接賦值給父類引用變量時,相同引用類型的變量調用同一個方法所呈現出的多種不同形態。通過多態,消除了類之間的耦合關系,大大提高了程序的可擴展性和可維護性。

Java的多態性是由類的繼承、方法重寫以及父類引用指向子類對象體現的。由于一個父類可以有多個子類,多個子類都可以重寫父類方法,并且多個不同的子類對象也可以指向同一個父類。這樣,程序只有在運行時程序才能知道具體代表的是哪個子類對象,這就體現了多態性。

在解了Java多態性的概念后,接下來通過一個案例來進行演示說明,如文件1所示。

文件1 Example15.java

    // 定義抽象類Animal
     abstract class Animal {
         abstract void shout(); // 定義抽象shout()方法
     }
     // 定義Cat類繼承Animal抽象類
     class Cat extends Animal {
         // 實現shout()方法
         public void shout() {
             System.out.println("喵喵……");
         }
     }
     // 定義Dog類繼承Animal抽象類
     class Dog extends Animal {
         // 實現shout()方法
         public void shout() {
             System.out.println("汪汪……");
         }
     }
     // 定義測試類
     public class Example15 {
         public static void main(String[] args) {
             Animal an1 = new Cat(); 
             Animal an2 = new Dog(); 
             an1.shout();
             an2.shout();
         }
     }
運行結果如圖1所示。

1621326098885_21.jpg

圖1 運行結果

文件1中,首先定義了一個抽象類Animal和抽象方法,接著定義了兩個類Cat和Dog繼承了Animal,在第22~25行代碼中,分別創建了Cat和Dog兩個類對象同時指向一個父類對象,并調用shout()方法,程序在編譯時自動識別具體的子類對象,從而選擇性的調用對應的方法,這就是Java中多態性的體現。由此可見,多態不僅解決了方法同名的問題,而且還使程序變的更加靈活,從而有效的提高程序的可擴展性和可維護性。





猜你喜歡:

如何創建類的實例對象?

什么是 Window 對象? 什么是 Document 對象?

如何理解面向對象的封裝、繼承和多態?

黑馬程序員java后端開發培訓

分享到:
在線咨詢 我要報名
和我們在線交談!