关于继承:有没有办法从C#中的多个类继承属性?

Is there a way to inherit properties from multiple classes in C#?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Multiple Inheritance in C#

在下面的示例中,我希望Shirt自动继承MaterialPigment类的属性。这在C中是可能的吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Material
{
    public enum FabricTypes { Cotton, Wool, Polyester, Nylon }
    public FabricTypes Fabric { get; set; }
    public Color Color { get; set; }
}

public class Pigment
{
    public enum PigmentQualities { Fine, Average, Poor }
    public PigmentQualities Quality { get; set; }
    public Color Color { get; set; }
}

public class Shirt : Material //, Pigment
{
    public Shirt()
    {
        Fabric = FabricTypes.Cotton;
        Color = new Color();
        //Quality = PigmentQualities.Fine;
    }
}

我很难提供一个更好的例子,但这基本上是我要做的。我知道我可以创建接口,但这些接口不会自动继承属性。请看,因为我不想每次创建类似于Shirt的类时都手动地插入所有这些属性。


C不允许从多个类继承。

但你为什么要这样做?衬衫可以有两个特性:材料和颜料。当初始化一个衬衫实例时,可以设置这些属性,比如将其传递到一个具有这些属性集的构造函数中。或者创建一个构造函数,在其中可以传递某些属性,并在该构造函数中实例化材质和颜料。