需求如下,現(xiàn)有一個(gè)類A以及子類B,C,D
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需要各自重寫相應(yīng)的fn()來(lái)完成自己的功能。但是B,C,D由于功能相似,其fn()實(shí)現(xiàn)幾乎相同。這個(gè)公共的函數(shù)有三種寫法:
1.在A里添加一個(gè) PRotected成員,然后在B,C,D都可直接調(diào)用。
2.改寫A的 abstract為virtual,然后在子類通過(guò)base.fn()調(diào)用。
3.新建一個(gè)類,并且寫成靜態(tài)函數(shù)供B,C,D調(diào)用。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注