我一直在寻找并找到类似的东西,但没有什么能够解决我的问题。这是 - 我有两个班级。 A,B。我希望C级具有这两个类的所有特性。这是在对象层,c#.net。
A类:
public class A
{
public string property1 { get; set; }
}
public class B
{
public string anotherproperty { get; set; }
}
public interface IB
{
B b { get; set; }
}
public class C : A, IB
{
//nothing here cause hopefully it inherits everything
}
我不知道我的实施是否接近。我收到“C没有实现接口成员IB”的错误消息
任何人都知道怎么做?
答案 0 :(得分:3)
我有两节课。 A,B。我希望C级具有这两个类的所有特性。
...然后你必须手动将A或B的属性添加到C. C#不支持多重继承,抱歉。
但是,在大多数情况下,不需要多重继承。一个常见的替代方法是使用组合而不是继承:例如,您可以让您的类C提供对A和B实例的引用:
public class C
{
private A a = new A();
private B b = new B();
public A A { get { return a; } }
public B B { get { return b; } }
}
这样您就可以通过myC.A.property1
和myC.B.anotherproperty
访问所有媒体资源。
如果您确实需要合并A
中B
和C
的实施,您可能需要查看Mixin C#的库。
答案 1 :(得分:0)
您可以这样做:
public class ClassA
{
public string AProp { get { return "AProp";} }
}
public class ClassB : ClassA
{
public string BProp { get { return "BProp"; } }
}
public class ClassC : ClassB
{
}
然后:
ClassC c = new ClassC();
Console.WriteLine(c.AProp);
Console.WriteLine(c.BProp);
打印:
AProp
BProp
您无法覆盖任何内容,但您可以访问继承的属性。