C# 如何解决在游戏中继承2个抽象类的问题?

C# 如何解决在游戏中继承2个抽象类的问题?,c#,inheritance,abstract,C#,Inheritance,Abstract,我的问题在于继承可玩角色的属性。我有一个名为Being的抽象类,说明所有继承类都需要包含力量、灵巧度等属性。玩家需要选择一个种族,例如将力量从0提高到10的兽人。然后玩家需要选择一个职业,比如蛮力,这会给英雄的力量增加7点。在我看来,我的Hero类继承了2个抽象类,这会让我很为难吗?这是我兽人职业的摘录: public abstract class Orc:Being { private int _strength = 10; //Another question, i

我的问题在于继承可玩角色的属性。我有一个名为Being的抽象类,说明所有继承类都需要包含力量、灵巧度等属性。玩家需要选择一个种族,例如将力量从0提高到10的兽人。然后玩家需要选择一个职业,比如蛮力,这会给英雄的力量增加7点。在我看来,我的Hero类继承了2个抽象类,这会让我很为难吗?这是我兽人职业的摘录:

public abstract class Orc:Being
{
     private int _strength = 10;



     //Another question, is it okay to declare an abstract property in my base abstract
     //class to force the inheriting class Orc to override the property? I wanted to 
     //find a way to force subclasses to have strength attributes

     public override int Strength
     {
            get {return _strength;}
            set {_strength = value;}
     }
}

您可以使用组合作为多重继承的解决方案:


这里的答案最好地解释了这一点:

如果您的抽象类只有抽象属性,您可以将其改为接口。这迫使实现类提供一个实现,并且您可以实现任意数量的接口

不然的话,我就来看看,或者。两者都使用组合作为继承的替代方案。

这可能就是您要寻找的

你可以让生物包含一个种族成分和一个职业成分(即场),并让力量场获取者返回一个种族的力量加成+职业的力量加成的总和。

decorator模式