2013-11-21 2 views
0

Так что это мой класс, и я немного узнал о наследовании. Я слышал об основных методах, но как это сделать в этом случае?Как использовать переопределение метода в этом случае?

class Game 
{ 
    string consoleName; 
    int gameID; 

    public Game(string name, int id) 
    { 
     this.consoleName = name; 
     this.gameID = id; 
    } 

    public string displayGame() 
    { 
     return consoleName + " is the console I am playing"; 
    } 

Это мой детский класс.

class RolePlayingGame : Game 
{ 
    int level; 

    public RolePlayingGame(string name, int id, int lv) : base(string name, int id) 
    { 
     this.level = lv; 
    } 

    // override method for displaying. meant to display what the game class displayed and "I am level " + level 
} 
+0

См этот вопрос и первый ответ http://stackoverflow.com/q/337598/1741542 –

ответ

3

Вы должны сначала изменить базовый класс:

class Game 
{ 
    ... 
    public virtual string displayGame() 
    { 
     return consoleName + " is the console I am playing"; 
    } 
} 

В вашем унаследованном классе (класс ребенка),

class RolePlayingGame : Game 
{ 
    ... 
    public override string displayGame() 
    { 
     ... 
     base.displayGame(); // If you need to call the base class. 
     ... 
    } 
} 
1

Есть две вещи, которые вам нужно сделать. В class Game вам нужно объявить метод виртуальным.

public virtual string DisplayGame(){ ... } 

Тогда в class RolePlayingGame вы должны объявить, что вы переопределение метода, override. (Кроме того, можно скрыть с помощью метода new.)

public override string DisplayGame(){ ... } 

Вот еще некоторая информация о переопределении против сокрытия от MSDN

1
  1. Сделать DisplayGame() виртуальный метод в классе Game.
public virtual string displayGame() { ... } 
  1. В RolePlayingGame, определить преобладающий метод
public override string displayGame() 
{ 
    return String.Format("Game {0}, Level {1}", this.name, this.level); 
} 

Кстати, вам нужно член "имя строки", чтобы сохранить название игры в игровом классе.

Вы можете обратиться к: http://msdn.microsoft.com/en-us/library/vstudio/9fkccyh4.aspx. Есть несколько хороших и простых примеров, которыми вы можете следовать.

2

displayGame()Game класс виртуальный.

В RolePlayingGame переопределения, как это:

public override string displayGame() { 
    return base.displayGame() + " - I am level " + level; 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^