C# 继承硬件分配;多家长单班



这是针对硬件作业的,所以应该不是很困难。无论如何,我们应该创建一个武器的基类,然后创建近战武器、法术、射弹的子类,每个类都有额外的武器属性。这部分并不难。我遇到了以下问题:

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

我可以管理创建玩家职业,但我不确定如何解释武器。

我有三种不同的玩家职业,例如公共职业玩家:法术:武器或公共职业玩家:近战武器:武器?我觉得应该有一种方法可以有一个玩家职业,但我对如何做到这一点感到慌乱。玩家类还需要一个构造函数;同样,这并不难,但我不知道如何解释武器类型的选择,除非我有多个玩家类别。

基本上,似乎我想有一个大子类(玩家)->三个可能的子类(近战武器,法术,射弹)->一个父类(武器),但我在这里混淆了自己。

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

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

这并不是说玩家

是一个名字和武器,而是说一个玩家有一个名字和一个武器。

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

你很困惑。退后一步,按照说明操作:

创建一个表示玩家的类...

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() };

该任务要求您在玩家和武器之间使用has-a关系,而不是is-a

所以在你的播放器类中,你将有

class Player
{
    public string Name {get; protected set;}
    public Weapon CurrentWeapon {get; protected set;}
}

最新更新