【发布时间】:2014-08-22 14:27:53
【问题描述】:
我有一个类结构,我想对其应用一些奇怪的约束:
public abstract class TopClass {}
public class ClassA : Topclass {}
public class ClassB : Topclass {}
public class ClassC : Topclass {}
public class ClassD : Topclass {}
public class ClassE : Topclass {}
我想将这些分类,其中一些重叠,所以我可以要求这种组合或使用TopClass 时的那种组合。由于 C# 不支持多重继承,所以我一直在尝试使用接口:
public abstract class TopClass {}
public interface IGroupA {}
public interface IGroupB {}
public class ClassA : Topclass, IGroupA {}
public class ClassB : Topclass, IGroupA {}
public class ClassC : Topclass, IGroupA, IGroupB {}
public class ClassD : Topclass, IGroupB {}
public class ClassE : Topclass, IGroupB {}
这一切都很好,但实际上使用这种疯狂是我遇到麻烦的地方。 我不知道如何指定函数的参数应为TopClass 类型并实现接口IGroupA。 IE,我希望能够在不明确命名的情况下定位 ClassA、ClassB 和 ClassC 类(以便负责 TopClass 及其死者的开发人员可以轻松地重新定义这些组而不干扰其他组开发人员)。
【问题讨论】:
标签: c# types interface polymorphism multiple-inheritance