using System;
class BaseClass
{
public virtual void printOut()
{
Console.WriteLine("BaseClasee");
}
}
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()
{
// BaselClass型の変数を宣言
BaseClass sample;
/* DerivedClass1のインスタンスを
* Upcastして代入 */
sample = new DerivedClass1();
// 呼び出されるメソッドを確認
sample.printOut();
/* 出力値:DerivedClass1
* overrideしたDerivedClass1の
* printOut()が呼び出される */
/* DerivedClass2のインスタンスを
* Upcastして代入 */
sample = new DerivedClass2();
// 呼び出されるメソッドを確認
sample.printOut();
/* 出力値:DerivedClass2
* overrideしたDerivedClass2の
* printOut()が呼び出される */
}
}
0 コメント:
コメントを投稿