一、多態的概念
多態分為類的多態和方法的多態,類的多態就是一個類型可以有不同的表現形態,什么樣的類型才會具備多態呢?只有被多個子類繼承或者實現的父類才具備多態的特征,因為在運行期間可以根據具體的子類表現出不同的狀態,比如說一個父類Person有Student、Worker、 Teacher、 Farmer 四個子類,在運行的時候如果實例化的子類是Student則此時Person表現是學生的行為、如果實例化的子類是Worker則此時Person表現是工人的行為,這就是父類表現出來的多態,類的多態的表現就是向上轉型和向下轉型。
方法的多態就是一個方法名稱卻有不同的實現,其實就是方法的重載,在調用方法的時候具體調用哪一-個是在運行期根據傳遞的實際參數的類型來確定調用哪一個方法,也就是同一個方法名稱可以有不同的表現形式,這就是方法的多態。方法多態的表現就是方法的重載。
二:類多態的好處
思考一個需求:有四個類Student、Worker、 Teacher、 Farmar, 要求在一個 類中定義方法來將以上的類作為方法的參數接受。現在能想到可以使用方法的重載接受。
DEMO:方法的重載解決需求









此時可以使用重載方法實現需求,但是存在很大的弊端,假如有一萬個類型需要接受那么需要在Aplay中重載方法一萬次,這樣的代碼應變性不高,耦合度高,依賴性強,此時我們可以使用多態的特征解決(向上轉型),可以將接受參數的方法的參數類型定義為所有類的父類。
DEMO:使用多態實現








此時Aplay類中的getInfo方法就不需要重載了,這就是多態的好處的直接體現
有完整的Java初級,高級對應的學習路線和資料!專注於java開發。分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源項目,助力開發者成長!
歡迎關注微信公眾號:碼邦主

