C#Inheritence HW Assignment;多个父母的单一班级?

时间:2016-03-09 17:10:30

标签: c#

这是一个硬件分配,所以它不应该是非常困难的。在任何情况下,我们都应该创建一个武器的基类,然后是MeleeWeapon,Spell,Projectile的子类,每个类都有额外的武器属性。那部分并不那么困难。我对以下内容感到困惑:

"创建一个代表具有名称和武器的玩家的类"

我可以管理创建一个玩家类,但我不知道如何解释这个武器。

我有三种不同的玩家类别,例如公共类玩家:法术:武器或公共类玩家:近战武器:武器?我觉得应该有办法让一个球员上课,但我对如何做到这一点感到慌乱。玩家类还需要一个构造函数;再这不是太难,但我不知道如何考虑武器类型的选择,除非我有多个球员类。

基本上,似乎我想要一个大孩子班(玩家) - >三种可能的子类(MeleeWeapon,Spell,Projectile) - >一个父母班(武器),但我在这里迷惑自己。

3 个答案:

答案 0 :(得分:1)

完全误读了这个要求。仔细看看:

  

创建一个代表具有名称和武器的玩家的类

并不是说播放器 是名称和武器,而是说播放器 名字和武器。

Player类应该有两个属性:NameWeapon。这与继承无关。

答案 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}}