今天主要說一下基類中的方法和屬性,既然把這東西放進了基類,那有一點可以肯定的是,它們是公用的,這種公用的實作可能由基類自己實作,也可能是子類去實作,對于這句話,會有三種情況:(以方法以例)
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的,為什麼?因為它們是可以被子類根據自己的邏輯去覆寫的。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CXs0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xCNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLidjNjRDM1YDZiFjM2MmY1QzM1UjY5UTZxcDM1MDN5QWNlRzY0MzLchDMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
感謝您的閱讀!