我使用C#編寫了一個簡單的遊戲,以幫助我學習基本的面向對象的概念。C#可以繼承的方法或屬性使用派生類成員而不創建新方法嗎?
在下面的代碼:
class entity
{
int hp;
string name;
public entity()
{
hp = 1;
name = "entity";
}
public string status()
{
string result;
result=name + "#" + " HP:" + hp;
return result;
}
class dragon : entity
{
new public string name;
new int hp;
public dragon()
{
hp = 100;
name = "Dragon";
}
}
我由對象 「龍」 這樣
dragon mydragon = new dragon();
的問題是用下面的代碼:
mydragon.status();
該返回一個字符串,但帶有「名稱」和「hp」的實體 cla ss對象(即hp = 1,name = entity)。
我想讓這個返回龍對象的值(hp = 100,name = dragon)。我不確定我做錯了什麼,但看起來很簡單。
擺弄和掙扎小時後,唯一的解決辦法我能來是簡單地複製粘貼& 的狀態()法在龍類。但我相信有更好的方法來做到這一點。
許多在此先感謝。
驚人的答覆!我非常喜歡這個+你命名類的「禮節」的技巧:)我非常確定,對於像我自己一樣從C#開始的任何人來說,這將非常方便。從來不知道整個訣竅是使用受保護的訪問修飾符。 – Xenosteel 2012-07-28 22:24:58