我在想这样的场景:

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从该类继承。

这样,您可以让类通过扩展的基类选择所需的方法。

10-06 02:33