我在想这样的场景:class Utopia
=>一个基类,它将其字段和方法传递给派生类。class Watashi
=>派生类,派生自Utopia,并继承了所有内容class Baka
=>派生类,从乌托邦继承一些字段
上面有一些类型,Baka类型应该继承一些特定的字段和方法,但是如何继承呢?如何指定仅Baka会继承而Watashi则从Utopia继承所有内容的字段和方法。
样例代码:
class Utopia {
public string Moshi;
[Exclude(ClassName("Baka"))]
public string HaveIt;
}
class Baka : Utopia
{
// only Moshi appears here
base.[Moshi]
}
class Watashi : Utopia
{
base.[Moshi][HaveIt];
}
如果我想使用多态:
Utopia _utopiaBaka = new Baka();
_utop.[Moshi];
Utopia _utopiaWatashi = new Watashi();
_utopiaWatashi.[Moshi][HaveIt];
当然,Framework还会检查派生类是否为其他类型的基类。
最佳答案
将乌托邦分为多个类别。有一个可以从任何类继承的类,因此Baka将从那里继承。
然后,扩展此PartialUtopia类,添加其余方法,并让Watashi从该类继承。
这样,您可以让类通过扩展的基类选择所需的方法。