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()
{
/* DerivedClass1をBaseClassに
* アップキャスト */
BaseClass b1 = new DerivedClass1();
// b1をDerivedClass1に再びダウンキャスト
b1 = (DerivedClass1)b1;
/* 元がDerivedClass1なのでb1を
* DerivedClassにダウンキャストしよう
* とするとエラーになる
b1 = (DerivedClass2)b1; */
}
}
0 コメント:
コメントを投稿