【发布时间】:2023-04-06 00:12:01
【问题描述】:
我目前有以下:
public abstract class CharacterClass
{
public abstract Attribute FirstAttributeBonus { get; }
public abstract Attribute SecondAttributeBonus { get; }
protected Attribute[] attributeBonuses; //2 attribute bonuses, which add 10 to the attributes stored in the array.
protected SKill[] majorSkills; //Major skills for class begin at 30.
protected Skill[] minorSkills; //Minor skills for class begin at 15.
protected IDictionary<int, Character> characterList; //List of characters who apply to this class specifically.
public CharacterClass()
{
}
}
考虑到我创建的任何类都将从这个基础继承,并且也继承类字段。例如,一个职业可能是战士;另一个可能是战斗法师等。
这是执行此类设计的正确方法,同时让派生构造函数初始化字段吗?还是在不继承这些字段的情况下编写类更好?
编辑:
我忘了说所有派生都是单例,我将 Class 的名称更改为“CharacterClass”,以避免混淆。
【问题讨论】:
-
将一个类命名为“
Class”势必会在未来造成重大混乱。 -
请不要在标题前加上“C#”。这就是我们在Stack Overflow 上的标签。
-
@John Saunders 抱歉,我不会再这样做了。
标签: c# inheritance polymorphism