天天看點

第三回 基類中的方法,應該根據實際情況,虛的虛,抽象的抽象!

今天主要說一下基類中的方法和屬性,既然把這東西放進了基類,那有一點可以肯定的是,它們是公用的,這種公用的實作可能由基類自己實作,也可能是子類去實作,對于這句話,會有三種情況:(以方法以例)

1 基類中的方法,對于所有子類都是一樣的,并且子類不能修改這個方法,這時,我們的方法這樣定義

1 protected void CannotModifyMethod()
2 {
3   ...
4      

2 基類中的方法,對于所有子類都是一樣的,但子類可能根據自己的邏輯,去實作自己那塊業務,這時,我們的方法這樣定義

1 protected virtual void OverrideMethod()
2 {
3   ...
4      

3 基類中的方法,完成由子類去實作,每個子類都有自己的業務邏輯,基類本身不能控制它,這時,我們的方法這樣定義

1 protected abstract void AbstractMethod();      

OK,對于基類中出現的方法大體就這三種情況,我們在設計基類時,一定要根據實際情況去選擇最佳的方法,而不要動不動virtual,時不時就來個abstract,當你使用每一個修飾符時,都應該明确知道它的含義,及你為什麼要使用它,這樣才能把程式寫的更加完美,另一方面也能看出你的程式是否“真正的面向對象”!

下面的圖像,展現了一個操作基類的CURD操作,它們都是virtual的,為什麼?因為它們是可以被子類根據自己的邏輯去覆寫的。

第三回 基類中的方法,應該根據實際情況,虛的虛,抽象的抽象!

感謝您的閱讀!