[英]How to hide methods from base class?
我使用Castle Active Record的ActiveRecordBase類作為我的db對象的基類。 這使我可以利用AR模式的優點,例如:
MyClass clas = new MyClass();
clas.Number = 5;
clas.Save();
問題是,對於某些對象,我想隱藏這些方法。 我怎樣才能做到這一點? 我不為這些對象使用接口。
Edit1:更明確地說:我想從基類繼承10個類,但其中3個不應暴露基類的某些方法。 例如,對於MyClassB,這是:
MyClassB clasB = new MyClassB();
clasB.Number = 5;
clasB.Save();
應該是不可能的-這個對象應該不能Save()。
Edit2:我已經從派生類中讀取了c#hide基類的某些屬性 。 我同意這是一種不好的方法,但是請記住,我必須使用ActiveRecordBase,我不能簡單地對其進行修改(至少如果我要堅持使用原始的Castle Active Record源代碼)。
如果要隱藏它們,則可能不屬於該基類。 我建議擴展繼承層次結構以實現此目的。
你不這樣做。
您可以對設計進行重組,以使7個對象從一個提供所需功能的對象繼承,其他3個從不提供此功能的對象繼承,而它們全部從主“核心”對象繼承。 想起來就像一棵樹。 您無需更改視圖的位置,而只需更改分支的位置即可。 我不確定這種類比是否有效,但請假裝確實如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.