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

2021-08-02 02:28:27 字數 1137 閱讀 3475

在介紹完前面那兩個物件導向的兩個特性之後,接下來就是最後乙個特性:多型

定義:多型表示不同的物件可以執行相同的動作,但要通過它們自己的實現**來執行。

例子:在國粹「京劇」中,很多都是師傅帶徒弟,是代代相傳的藝術。假設師傅是乙個非常著名的京劇藝術家,徒弟也很厲害,模仿師傅的戲十分的惟妙惟肖。有一天,師傅突然發生了事故,無法上台,而票早就賣出,退票顯然會影響聲譽。怎麼辦呢?由於京劇的戲都是需要化妝才可以上台的,於是就決定讓徒弟代替師傅上台。

注意

1.子類

【徒弟】以父類【師傅】的身份出現,也就是徒弟以師傅的身份登台演出。

2.子類

【徒弟】在工作時以自己的方式來實現,這說明徒弟模仿的再好,那也是模仿,徒弟只是以自己的理解去表現師傅的作品。

3.子類【徒弟】以父類【師傅】的身份出現時,子類【徒弟】特有的屬性和方法不可以使用,也就是說徒弟在經過多年的學習後,也有了自己的絕活和成名絕技,但是在此時,代替師傅上場表演的時候,是不可以表現出來的。

概念:

1.虛方法:為了使子類的例項完全接替來自父類的類成員,父類必須將該成員宣告為虛擬的這是通過在該成員的返回型別之前新增virtual關鍵字來實現。(通常虛擬的是方法,但其實是除了字段不能是虛擬的,屬性、事件和索引器都可以是虛擬的。)

2.方法重寫:子類可以選擇使用override關鍵字,將父類實現替換為它自己的實現,這就是方法重寫override,或者叫做方法覆寫。

**:

class animal

}

class cat:animal

public cat(string name):base(name)

{}public override string shout()

//"叫聲比賽"的按鈕事件

private void button4_click(object sender, eventargs e)

}

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

乙個物件有不同的形態。比如 每個人在不同的場景有著不同的身份 多型在預設情況下只能呼叫子類重寫的方法,不能呼叫子類特有方法。等號左邊是誰就呼叫誰的成員變數 看new的是誰就呼叫誰的成員方法 一定是子類重寫的!不能是子類特有的方法!那我們為什麼要用多型呢?多型的好處不是體現在new物件的,而是體現在方...

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

多型 不同物件作用於相同方法,呈現的結果不同 表現形式為a類 物件名 new b類 a類和b類之間存在直接或間接的繼承關係,a類叫做申明類,b類叫做例項類 執行時多型 過載 overload 編譯時多型 重寫 override 過載 方法名相同,形參的型別個數順序不同,只與形參有關,與返回值無關 c...

java中物件導向三大特徵之一多型

不同的物件,接受到相同的訊息,產生的響應不同就是多型。多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。多型的好處 1.可替換性 substitutability 多型對已存在 具有可替換性。例如,多型對圓circle類工作,對其他任何圓形幾何體,如圓環,也同樣工作...