这是一个硬件分配,所以它不应该是非常困难的。在任何情况下,我们都应该创建一个武器的基类,然后是MeleeWeapon,Spell,Projectile的子类,每个类都有额外的武器属性。那部分并不那么困难。我对以下内容感到困惑:
"创建一个代表具有名称和武器的玩家的类"
我可以管理创建一个玩家类,但我不知道如何解释这个武器。
我有三种不同的玩家类别,例如公共类玩家:法术:武器或公共类玩家:近战武器:武器?我觉得应该有办法让一个球员上课,但我对如何做到这一点感到慌乱。玩家类还需要一个构造函数;再这不是太难,但我不知道如何考虑武器类型的选择,除非我有多个球员类。
基本上,似乎我想要一个大孩子班(玩家) - >三种可能的子类(MeleeWeapon,Spell,Projectile) - >一个父母班(武器),但我在这里迷惑自己。
答案 0 :(得分:1)
你完全误读了这个要求。仔细看看:
创建一个代表具有名称和武器的玩家的类
并不是说播放器 是名称和武器,而是说播放器 有 名字和武器。
Player
类应该有两个属性:Name
和Weapon
。这与继承无关。
答案 1 :(得分:1)
创建一个代表玩家的类......
public class Player {}
......有一个名字......
public class Player
{
public string Name { get; set; }
}
......和武器。
public class Player
{
public string Name { get; set; }
public Weapon EquippedWeapon { get; set; }
}
您现在可以使用不同的武器创建不同的玩家:
var alice = new Player { Name = "Alice", EquippedWeapon = new MeleeWeapon() };
var bob = new Player { Name = "Bob", EquippedWeapon = new Spell() };
答案 2 :(得分:0)
作业要求您在玩家和武器之间使用 has-a 关系而不是是-a
所以在你的Player类中你将拥有
{{1}}