using System;
class BaseClass
{
public virtual void printOut()
{
Console.WriteLine("BaseClass");
}
}
// Override
class DerivedClass1 : BaseClass
{
public override void printOut()
{
Console.WriteLine("DerivedClass1");
}
}
// 隠蔽
class DerivedClass2 : BaseClass
{
new public void printOut()
{
Console.WriteLine("DerivedClass2");
}
}
class MainClass
{
static void Main()
{
// BaseClass型の変数を宣言
BaseClass sample;
// インスタンスを代入
sample = new BaseClass();
sample.printOut();
/* DerivedClass1のインスタンスを
* Upcastして代入 */
sample = new DerivedClass1();
// 出力値:DerivedClass1
sample.printOut();
/* DerivedClass2のインスタンスを
* Upcastして代入 */
sample = new DerivedClass2();
// 出力値:BaseClass
sample.printOut();
// 隠蔽ではポリモーフィズム(多様性)は機能しない
}
}
0 コメント:
コメントを投稿