多型就是不同物件對同乙個訊息的不同相應方式。
舉例:cut(訊息)
醫生收到cut訊息後,執行動手術;
理髮師收到cut訊息後,執行減法;
演員收到cut訊息後,停止演出。
三個不同物件,對同乙個cut訊息的反應都不同,這就是多型。
在c#中abstract和virtual方法都能實現多型。
1.用abstract修飾方法是抽象方法,沒有方法體,該類必須宣告為abstract class(抽象類),用virtual修飾的方法是虛方法,有方法體;
2.子類繼承了抽象類,必須重寫(override)父類抽象方法,而不一定要重寫父類的虛方法;
3.子類只有重寫的父類的虛方法後才能實現多型;
code:
public
classperson
} public
classstudent:person
} listpersons=newlist();
foreach(personpinpersons)
//因為子類的hello沒有使用override,相當於是new方法,導致不能實現多型
public
newvoidhello()
abstract類和abstract方法
可以使用abstract來修飾乙個類或者方法。用abstract修飾的類表示這個類是乙個抽象類,用abstract修飾的方法表示這個方法是乙個抽象方法。抽象類不能被例項化。抽象方法是只有方法宣告,而沒有方法的實現內容。可以使用abstract來修飾乙個類。用abstract修飾的類表示這個類是乙個抽...
abstract類和abstract方法
可以使用abstract來修飾乙個類或者方法。用abstract修飾的類表示這個類是乙個抽象類,用abstract修飾的方法表示這個方法是乙個抽象方法。抽象類不能被例項化。抽象方法是只有方法宣告,而沒有方法的實現內容。可以使用abstract來修飾乙個類。用abstract修飾的類表示這個類是乙個抽...
abstract類和abstract方法
可以使用abstract來修飾乙個類或者方法。用abstract修飾的類表示這個類是乙個抽象類,用abstract修飾的方法表示這個方法是乙個抽象方法。抽象類不能被例項化。抽象方法是只有方法宣告,而沒有方法的實現內容。abstract 抽象類 可以使用abstract來修飾乙個類。用abstract...