C 基礎 虛方法實現多型

2021-07-03 04:44:06 字數 1816 閱讀 3428

虛方法:用virtual修飾的方法叫做虛方法

虛方法可以在子類中通過override關鍵字來重寫

常見的虛方法:tostring().      equals

虛方法特點總結:

1,在父類中把需要設定為虛方法的方法前加virtual標記;

2,虛方法在父類中必須有實現,哪怕是空實現

3,子類繼承父類後,可以選擇對虛方法進行重寫也可以選擇不進行重寫;

4,當子類重寫父類方法的時候,必須保證重寫後的方法和原方法的訪問修飾符,返回值型別,方法名,引數列表完全一致;

5,當方法的標記是virtual和override的時候都可以重寫。

方法重寫注意事項:

子類重寫父類方法時,必須與父類保持一致的方法簽名與返回值型別。即:方法名、返回值型別、引數列表都必須保持一致。

[訪問修飾符也得一致

]「方法簽名」:一般是指方法的【名稱

】+方法的

【引數列表

】,不包含方法返回值型別

虛方法與重寫 1

、方法不能用

static修飾

2、方法重寫與基類的簽名必須一致 3

、virtual

不能與private

一起使用 4.

虛方法為什麼不能加

static

因為 虛方法是父類,加

static

,那麼就是類呼叫這個方法

,和物件無關了

,那子類就調不了,

base.fun();

的目的主要是新增邏輯

override與過載(overload)的區別

過載是方法的名稱相同。引數或引數型別不同,進行多次過載以適應不同的需要。過載(

overload

)是面向過程的概念。

override

是進行基類中函式的重寫。

override

是物件導向的概念

虛方法實現多型

class program

else if (people[i] is british)

else if (people[i] is japanese)

#endregion

//這句話體現了多型。。。。

people[i].show();

//}#endregion}}

public class person

public int age

public int height

//在person型別中增加乙個show()方法。

//第一步:將父類中的show方法標記為virtual(虛方法)

public virtual void show()

}//高麗

public class korean : person

}/// /// 朝鮮

///

public class northkorean : korean

}public class american : person

}/// /// 中國人類

///

public class chinese : person

}/// /// 英國人類

///

public class british : person

}/// /// 日本人類

///

public class japanese : person

}

C 多型實現之虛方法

控制台應用程式中,新建乙個people類檔案,如下 using system using system.collections.generic using system.linq using system.text namespace 13多型 public string name 1.第一,將父類...

虛方法實現多型

大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...

C 通過虛方法實現方法重寫 多型。

class program 希望person存的是哪個類的物件就呼叫哪個類的方法 第一步 將父類中對應方法家virtual關鍵字 變為虛方法 子類可重寫 子類中方法用override關鍵字將父類虛方法重寫 person i say 這句話就體現了多型 public class person publ...