2010-07-25 4 views
0

가능한 중복 : 다음 예에서
Multiple Inheritance in C#C#에서 여러 클래스의 속성을 상속하는 방법이 있습니까?

, 나는 Shirt가 자동으로 모두 MaterialPigment 클래스의 속성을 상속합니다. 심지어 C#에서도 가능합니까?

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과 비슷한 클래스를 생성 할 때마다 수동으로 모든 속성을 펀치 할 필요가 없기 때문입니다.

+0

다음으로 살펴 보겠습니다. http://stackoverflow.com/questions/178333/multiple-inheritance-in-c –

답변

1

C#에서는 여러 클래스에서 상속 할 수 없습니다.

하지만 왜 이렇게합니까? 셔츠는 재료와 안료 대신 2 개의 속성을 가질 수 있습니다. Shirt 인스턴스를 초기화 할 때 이러한 속성이 설정된 생성자에서 전달하는 것처럼 설정할 수 있습니다. 또는 특정 속성을 전달하고 해당 생성자에서 Material 및 Pigment를 인스턴스화 할 수있는 생성자를 만듭니다.

+0

내 시나리오에 나와있는 것보다 많은 시나리오가 포함되어 있기 때문에이 작업을 수행하는 이유가 있습니다. 많은 다른 클래스들로부터의이 간단한 예제. 더욱이? 내 실제 시나리오에서 100 개가 넘는 Shirt 클래스가있을 것이며 인터페이스 나 인터페이스에서 동일한 속성을 모두 입력한다고 상상할 수는 없습니다. 그것은 너무 많은 일처럼 보입니다. 나는 더 나은 방법이있을 거라 생각했는데 - 내가 놓친 것? – jedmao

+0

100 다른 클래스의 셔츠? Shirt 클래스의 인스턴스 생성은 1 회에서 100 회까지만 예상됩니다. – XIII

+0

아니요, 아니요 ... 제 말은 ... 다른 클래스의 여러 속성을 상속해야한다는 점에서 Shirt와 비슷한 100 개 이상의 클래스입니다. – jedmao

관련 문제