public class Program
{
public static void Main(string[] args)
{
ClassY obj = new ClassY(123, 456);
obj.ShowField();
}
}
// 仮想メソッドを持つ基本クラス
public class ClassX
{
public int fieldX;
// 仮想メソッド
public virtual void ShowField()
{
Console.WriteLine("fieldXの値:" + this.fieldX);
}
public ClassX(int fieldX)
{
this.fieldX = fieldX;
}
}
// オーバーライドメソッドを持つ派生クラス
public class ClassY : ClassX
{
public int fieldY;
// オーバライドメソッド
public override void ShowField()
{
Console.WriteLine("fieldXの値:" + this.fieldX);
Console.WriteLine("fieldYの値:" + this.fieldY);
}
public ClassY(int fieldX, int fieldY)
: base(fieldX)
{
this.fieldY = fieldY;
}
}