演習課題「RPGのプレイヤーを継承で書こう - その2」
Monsterクラスを継承したDragonクラスを作成し、Attackメソッドをオーバーライドさせ、下の期待する出力値と同じ出力をしてください。
期待する出力値
=== パーティーで勇者と戦う ===
スライムは勇者を攻撃した
マタンゴは勇者を攻撃した
ドラゴンは勇者に炎を放った
演習課題「RPGのプレイヤーを継承で書こう - その2」
Playerクラスを継承したWizardクラスを作成し、Attackメソッドをオーバーライドさせ、下の期待する出力値と同じ出力をしてください。
期待する出力値
=== パーティーでスライムと戦う ===
勇者はスライムを攻撃した
戦士はスライムを攻撃した
ズバーン
魔法使いはスライムに炎を放った
#05:RPGのプレイヤーを継承で書こう - その2
クラスを継承する具体例として、RPGのPlayerクラスとWizardクラスを書きます。前回に引き続いて、基底クラスを継承して、魔法使いのWizardクラスを作成しましょう。
// RPGのプレイヤーを継承で書こう - その2
using System;
class Lesson08
{
public static void Main()
{
Console.WriteLine("=== パーティーでスライムと戦う ===");
var hero = new Player("勇者");
var warrior = new Player("戦士");
var wizard = new Wizard("魔法使い");
Player[] party = { hero, warrior, wizard };
foreach(var player in party)
{
player.Attack("スライム");
}
}
}
class Player
{
public string Name { get; private set; }
public Player(string name)
{
Name = name;
}
public virtual void Attack(string enemy)
{
Console.WriteLine(Name + "は、" + enemy + "を攻撃した!");
}
}
class Wizard : Player
{
public Wizard(string name) : base(name)
{
}
public override void Attack(string enemy)
{
Console.WriteLine("ズバーン!");
Console.WriteLine(Name + "は、" + enemy + "に炎を放った!");
}
}