首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决游戏中继承2个抽象类的问题?

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

Stack Overflow用户
提问于 2013-02-05 23:18:02
回答 3查看 122关注 0票数 4

我的问题在于继承可玩角色的属性。我有一个名为Being的抽象类,它规定所有继承的类都需要包含诸如力量,灵巧性等属性。玩家需要选择一个种族,例如将力量从0提高到10的Orc。然后玩家需要选择一个职业,例如蛮力,为英雄的力量增加7点。据我所知,我会被困在继承2个抽象类的Hero类中吗?这是我的Orc类的摘录:

代码语言:javascript
运行
复制
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;}
     }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-05 23:24:05

如果你的抽象类只有抽象的属性,你可以把它变成一个接口。这迫使实现类提供一个实现,并且您可以实现任意数量的接口。

否则,我会看一看decorator patternstrategy pattern。两者都使用组合作为继承的替代方案。

票数 3
EN

Stack Overflow用户

发布于 2013-02-05 23:22:22

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

这里的答案最好地解释了这个问题:https://stackoverflow.com/a/178368/340128

票数 5
EN

Stack Overflow用户

发布于 2013-02-05 23:25:11

component pattern可能就是您要查找的内容。

你可以让生物包含一个种族组件和一个职业组件(也就是字段),并让力量字段getter返回一个种族力量加成+职业力量加成的总和。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14710800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档