对于一个扑克解析器(我的第一个学习c#的项目),我有一个父类clCardsHeld
和两个子类clHiHand
和clLoHand
。 clCardsHeld
还包含两种子类型中每一种的属性和私有字段。还等什么我结束了,这种继承是,如:c#防止方法的继承
public class clCardsHeld
{public clHiHand HiHand { Get {} Set {} }
}
public class clHiHand : clCardsHeld{}
clCardsHeld Hand3 = new clCardsHeld();
clHiHand hi = new clHiHand();
hi = Hand3.HiHand.HiHand.HiHand;
hi = Hand3.HiHand.LoHand.HiHand;
(如提示您通过智能感知)。 (HiHand
不应该有另一个HiHand
作为其本身的财产,也不是一个低手,但CardsHeld
有HiHand
和LoHand
属性,例如,您可以获得7张卡片的游戏,并且您可以使用5来制作最好的手和5为最坏的可能,两者同时播放,每个播放一半)
我将基类字段设置为私有的,而不是受保护的,所以继承的属性仍然为null
,如果我已经正确识别。但我真的希望该财产不被遗传。试图研究这一点,我发现一个属性只能在覆盖基本属性时才能被封闭。而“隐藏”这个方法通常是指在孩子身上有不同的代码。
的另一件事,而我扔了我的新手问题:
public class clCardsHeld { private List<clCards> _liCards; }
public class clHiHand : clCardsHeld
我可以找到当地人窗口clCardsHeld._liCards
,但我无法找到当地人窗口clCardsHeld.clHiCards._liCards
(但我可以得到它通过将其分配给一个变量。
感谢您的帮助。
看到这个重复的问题:HTTP://stackoverflow.com/questions/3772321/how-to-prevent-inheritance-for-some-methods – Adeel 2011-02-17 05:26:59
请提供一些示例源代码。 – Raghu 2011-02-17 05:32:16
我至少试了两次来阅读这个,而我却不能。我不知道你在问什么。你能否把你的问题格式化得更好一些?更多的空格(考虑段落)和代码格式会帮助*很多*。你所要做的就是将你的代码行用4个空格表示,并且它们会自动显示语法突出显示和其他好东西。 – 2011-02-17 05:39:56