多型的三大特徵

2021-10-03 13:50:13 字數 742 閱讀 7611

多型實現的前提:必須是類與類之間要有關係,要麼繼承,要麼實現,存在重寫(override),其實就是抽象函式或介面。

多型的應用:父類物件的引用指向子類物件,其實本質上就是乙個向上轉型。

舉個模型例子,一家公司有員工類(employee),還有其子類:銷售(sales)、市場(market)、工程師(engineer)等。某一天老闆招待所有的員工開了個短會,完了之後對所有的員工(employee)說,大家回去工作吧。在這裡我們可以認為老闆呼叫了所有員工物件的continuetowork()方法,而不是對乙個個員工細說做什麼工作,比如對銷售部說你去制定銷售計畫(呼叫makesaleplan();),對市場部說你去制定產品的**(呼叫makeproductprice();)…這種逐個細說的方式並不是物件導向,而是面向個體。可以確定的是,員工類應該有乙個方法continuetowork()。而員工如何實現他們工作的方法卻只有精確到子類才能確定,因為不同的員工的工作方式是不一樣的。因此,我們很多時候只需要關心物件的父型別,而忽略更精確的子型別,比如上面老闆叫大家回去工作時,他對全體員工說的,主要指的是全體員工型別。

上述的uml圖:

方法重寫是子類重新編寫父類的方法,多型是類實現介面中抽象方法,本質都是重新寫方法,為什麼要區別開來呢?

重寫是多型實現方法的一種,多型的實現方法包括但不侷限於重寫,二者不是並列關係!多型是一種思想,重寫是一種方法!

物件導向三大特徵 多型

訊息是乙個物件與另乙個物件的通訊單元,是要求某個物件執行類中定義的某個操作的規格說明。傳送給乙個物件的訊息定義了乙個方法名和乙個參數列 可能是空的 並指定某乙個物件。物件接收的訊息則呼叫訊息中指定的方法,並將形式引數與參數列中相應的值結合起來。如有兩個類分別是教練和運動員,如下 教練類 public...

物件導向的三大特徵之多型

多型就是同名方法,但是引數的個數或資料型別不同 notice 引數順序不同也是多型 next 用求最大值max來介紹多型 先寫乙個主類main main方法為程式的入口 package bilibili classname main description 多型 求最大值 author emowat...

python物件導向的三大特徵 多型

什麼是多型 由不同的類例項化得到的物件,呼叫同乙個方法,執行的邏輯不同 多型體現在由乙個類例項化出多個物件,這些物件執行相同的方法時,執行的過程和結果不一樣 不同的物件呼叫相同的方法 多型的概念指出來物件如何通過他們共同的屬性和動作來操作及訪問,而不需考慮具體的類 多型繼承有兩層意義 1.改變 2....