需求以下,現有一個類A以及子類B,C,Dide
abstract class A{ abstract void fn(); } class B:A{ override void fn(){} } class C:A{ override void fn(){} } class D:A{ override void fn(){} }
顯然,B,C,D須要各自重寫相應的 fn() 來完成本身的功能。可是B,C,D因爲功能類似,其fn()實現幾乎相同。這個公共的函數有三種寫法:函數
1. 在 A 裏添加一個 protected 成員,而後在 B,C,D 均可直接調用。spa
2. 改寫 A 的 abstract 爲 virtual,而後在子類經過 base.fn() 調用。code
3. 新建一個類,而且寫成靜態函數供B,C,D調用。blog