簡體   English   中英

C# 繼承硬件分配; 多個父母的單一課程?

[英]C# Inheritence HW Assignment; Single Class for multiple parents?

這是一個硬件任務,所以應該不是很困難。 在任何情況下,我們都應該創建一個 Weapon 的基類,然后是 MeleeWeapon 、Spell、Projectile 的子類,每個類都有額外的武器屬性。 那部分不是那么難。 我遇到了以下問題:

“創建一個代表具有名稱和武器的玩家的類”

我可以管理創建一個玩家類,但我不知道如何解釋武器。

我是否有三個不同的玩家類,例如公共類 Player : Spell: Weapon 或公共類 Player: MeleeWeapon : Weapon? 我覺得應該有一種方法可以讓一個玩家類,但我對如何做到這一點感到心慌。 播放器類還需要一個構造函數; 同樣,這並不太難,但我不知道如何考慮武器類型的選擇,除非我有不止一個玩家職業。

基本上,我似乎想要一個大子類(玩家)-> 三個可能的子類(近戰武器、法術、投射物)-> 一個父類(武器),但我在這里很困惑。

完全誤解了要求。 細看:

創建一個代表具有名稱和武器的玩家的類

不是說玩家名字和武器,而是說玩家名字和武器。

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

因此,在您的 Player 類中,您將擁有

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM