起初接觸到這個名詞的時候,是在看
c++
看到的,裡邊寫的概念還是比較好理解的。但是這次看到了
c#
多型就是同一操作作用於不同物件,可以有不同的解釋,產生不同的執行結果。這就是多型性。同時要多型性是通過派生類覆寫基類中的虛函式型方法來實現的。
說到這裡,就不得不說一下過載和覆寫。
什麼是過載呢?就是乙個類中的方法與另乙個方法同名,但是參數列不同,這種方法稱之為過載方法。
比如說:
public void zhuguo()
public void zhuguo(string tie)
這個例子就是,比如我是個鑄鍋匠,不管是鐵鍋還是鋁鍋都會鑄,顧客拿來鐵可以鑄鐵鍋,拿來鋁可以鑄鋁鍋,什麼都沒帶來就用空氣來給他鑄個空氣鍋。這樣一樣的方法,但是所帶來的材料(方法的引數不同),就會出現 不同的結果。這樣過載就可以使功能擴充套件。
什麼是重寫呢?重寫顧名思義,是重新設計了方法的實現,這個「重新設計」的基礎是方法名和引數完全一致,但是內部實現體不一樣。重寫一般發生在父類和子類之間,一般父類定義乙個虛方法或抽象方法,子類根據具體情況「重寫」其中的實現。
比如:形狀都有大小,圓和方都屬於形狀。他們都有各自的大小。通過重寫可以得到他們各自的大小。
先定義乙個抽象類——shape ,其中getside(得到圖形大小)是乙個虛方法。
abstract public class shape
如果要是想得到圓的大小,就要重新寫一下getside這個方法,來得到圓的大小
public class 圓 : shape
}
同樣,方也有自己的大小。這樣我們也要重寫一下getside這個方法。來得到方的實際大小
public class 方 : shape
}
這樣我們就可以使用同一種方法,來實現不同的效果(功能),這樣就是物件導向設計的多型性。多型性就是父類使用子類的方法,通過宣告父類例項化子類。就像乙個父親擁有好幾個兒子,他們都會演奏,當要求父親開一場演奏會的時候,父親就會下達演奏這個命令,各個兒子根據自己的情況,演奏不同的樂器,這樣就構成了一場完美的演奏會,完成了父親的任務。
知識**於生活。
c 之 多型性
先看乙個例子 然後我們引進多型,看看 公升級的威力 1 include2 using namespace std 34 class liberation 10virtual intcombat 1114 private 15 intcapability 16 17class liberation a...
C 學習之多型性
類的幾個重要特性之一多型性,有著廣泛的用途。類的多型性包括 編譯時多型和執行時多型。編譯時多型表現為乙個同名的方法會根據引數型別 個數和位置的不同有不同執行效果。通過方法過載來實現。顧名思義,它由編譯器根據呼叫引數的不同,選擇相應的函式。執行時多型通過虛方法實現。表現為 相同的引數,仍會執行不同的函...
C 之多型性1
過載 類中定義的方法可能有不同的版本 public bool withdraw double amt,string name public bool withdraw double amt 特點 兩必須一可以 方法名必須相同 引數類標必須不相同 返回值型別可以不相同 虛函式 宣告虛方法 使用virt...