您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

如何理解Java中的多型?

簡介根據動靜態劃分分為靜態多型(過載)以及動態多型(重寫),根據處理時機劃分分為編譯時多型(過載)和執行時多型(重寫),換成人話其實就是Java中的兩種用於多型的機制:過載與重寫

說明類的繼承和多型有什麼作用

如何理解Java中的多型?

Java是程式語言中的最流行的一種,Java常年佔據著程式語言指數排行榜的前五的位置,擁有眾多的開發者以及良好的生態,TIOBE公佈的今年8月份程式語言指數排行榜如下圖所示。

如何理解Java中的多型?

Java作為面向物件的動態高階程式語言,抽象、封裝、繼承、多型為Java面向物件的最重要的四個特徵,今天我們就來聊一聊如何理解Java中的多型。

我們先來了解一下Java中多型的概念,在Java中多型是指在父類中定義的屬性和方法被子類繼承之後,可以具有不同的資料型別(屬性)或表現出不同的行為(方法);允許不同類的物件對同一動作作出響應。不同物件呼叫相同方法即使引數也相同,最終表現行為也可能是不一樣的從而擴大物件的自適應性。

那麼Java是如何實現多型的呢?

根據動靜態劃分分為靜態多型(過載)以及動態多型(重寫),根據處理時機劃分分為編譯時多型(過載)和執行時多型(重寫),換成人話其實就是Java中的兩種用於多型的機制:過載與重寫。

過載:過載是指同一個類中有多個同名的方法,但這些方法有不同的引數,根據呼叫方的引數在編譯期間就可以確定呼叫哪個方法。

重寫:重寫是指派生類重寫基類的方法,使用基類指向其子類的例項物件,或介面的引用變數指向其實現類的例項物件,在程式呼叫的執行期根據引用變數所指的具體例項物件呼叫正在執行的那個物件的方法,即需要到執行期才能確定呼叫哪個方法。

過載和重寫是Java中實現多型的重要機制。過載又被稱為靜態多型、編譯時多型,發生在一個類中,同名的方法如果有不同的引數列表(引數型別不同、引數個數不同或者二者都不同)則視為過載。

過載程式示例如下:

如何理解Java中的多型?

重寫: 又稱動態多型,執行時多型:發生在兩個類中;方法名、引數、返回型別都與父類一致,不可以修改,但是裡面的實現可以與被重寫方法不同。(可以使用@Overwrite標籤校驗),重寫示例程式如下:

如何理解Java中的多型?

Java中多型性包括引數多型性和包含多型性。Java編輯器會自動根據所傳遞的引數進行判斷,根據執行時物件的型別不同而執行不同的操作,這樣很好地解決了應用程式函式同名問題。多型性豐富了物件的內容,擴大了物件的適應性,改變了物件單一繼承的關係,使得Java更具魅力。

Top