物件導向程式設計 多型

2022-09-10 11:15:12 字數 2126 閱讀 4885

多型(多種狀態)的基本介紹:

方法或物件具有多種形態,是物件導向的三大特徵,多型是建立在封裝和繼承的基礎之上的。

多型的具體體現

1)方法的多型

2)物件的多型

乙個物件的編譯型別和執行型別可以不一致;

編譯型別在定義物件時就確定了不能改變;

執行型別是可以改變化的;

編譯型別看定義時 =號 的左邊,執行型別看 =號 右邊;

多型注意事項和細節討論:

1)多型的前提是:兩個物件(類)存在繼承關係;

2)多型的向上轉型:

(1)本質:父類的引用指向子類的物件;

(2)語法:父類型別  引用名 =new 子類型別();

(3)特點:編譯型別看左邊,執行型別看右邊。

可以呼叫父類中所有成員(須遵守訪問許可權)

不能呼叫子類中特有的成員

最終執行看子類的具體實現

3)多型的向下轉型:

(1)語法:子類型別  引用名 = (子類型別)父類引用;

(2)只能強轉父類引用不能強轉父類物件;

(3)可以呼叫子類型別中的所有成員。   

屬性沒有重寫之說,屬性的值看編譯型別。

instanceof比較操作符,用於判斷物件是否為xx型別或xx型別的子型別:      

package

com.j**amj.com.j**amj.polyparamenter_;

import

j**a.sql.sqloutput;

/** * author: mr.lin

* date: 2021/11/11 0:06

* filename: ployparamenter

* description:物件導向--多型 的練習(main) */

public

class

ployparamenter

public

void

showempannual(employee e)

public

void

testworke(employee e)

else

if (e instanceof

manager)

else}}

多型的練習main方法

型別是子類型別
經理

package

com.j**amj.com.j**amj.polyparamenter_;

/** * author: mr.lin

* date: 2021/11/11 0:07

* filename: manager

* description: 經理類 */

public

class manager extends

employee

public

void

management()

@override

public

void

wage()

}

普通員工

package

com.j**amj.com.j**amj.polyparamenter_;

/** * author: mr.lin

* date: 2021/11/10 23:51

* filename: polyparamenter

* description: 物件導向--多型 的練習(員工) */

public

class

employee

public

void

wage()

public

string getname()

public

void

setname(string name)

public

double

getannual()

public

void setannual(double

annual)

}

員工(父類)

c 物件導向程式設計 多型

多型 即指多個不同的類對同乙個方法的不同實現。多型允許子類對從父類繼承的方法進行重新實現 多型的使用在c 中,子類使用new關鍵字來隱藏父類成員,通過方法的隱藏和方法的重寫實現多型。第一種方法的隱藏 實際呼叫父類方法 定義人類,包含工作方法 class person 定義醫生類和程式設計師類 cla...

Python 物件導向程式設計 多型

多型 傳入不同的物件,產生不同的效果 多型是一種使用物件的方式,子類重寫父類方法,呼叫不同子類物件的相同父類方法,可以產生不同的執行結果 好處 呼叫靈活,更容易編寫出通用的 做出通用的程式設計,以適應需求的不斷變化。實現步驟 1.定義父類,並提供公共方法 2.定義子類,並重寫父類方法 3.傳遞子類物...

物件導向程式設計(封裝 繼承 多型)

1 保證 資料的安全性 2 遮蔽 複雜性 3 封裝型別 普通 封裝成方法 方法都封裝在乙個類中。using system namespace lesson01 public void close class mainclass 1 被繼承類 父類 基類 繼承類 子類 派生類 2 子類可以擁有父類的全...