using System;
class BaseClass
{
public virtual void printOut()
{
Console.WriteLine("BaseClass");
}
}
class DerivedClass1 : BaseClass
{
public override void printOut()
{
Console.WriteLine("DerivedClass1");
}
}
class DerivedClass2 : BaseClass
{
public override void printOut()
{
Console.WriteLine("DerivedClass2");
}
}
class MainClass
{
static void Main()
{
// BaseClass型の変数を宣言
BaseClass sample;
// それぞれどのClassのMethodが呼ばれるかを確認
sample = new BaseClass();
// 出力値:BaseClass
sample.printOut();
// DerivedClass1のインスタンスをUpcast
sample = new DerivedClass1();
// 出力値:DerivedClass1
sample.printOut();
// DerivedClass2のインスタンスをUpcast
sample = new DerivedClass2();
// 出力値:DerivedClass2
sample.printOut();
}
}
0 コメント:
コメントを投稿