抽象クラス
クラス自体を abstract 宣言した場合は、実体を作れないだけ
abstract class Base
{
public void Hello () {}
}
class Inherit : Base
{
new public void Hello () {}
static void Main ()
{
Inherit iObj = new Inherit ();
// Base bObj = new Base (); この行はコンパイルできない
Base bObj = iObj;
iObj.Hello (); // Inherit のメソッドが実行される
bObj.Hello (); // Base のメソッドが実行される
}
}
メソッドを abstract 宣言した場合は内容を定義できない。派生側でオーバーライドする必要がある。
abstract class Base
{
public abstract void Hello (); // 実体はない
}
class Inherit : Base
{
public override void Hello () {}
static void Main ()
{
Inherit iObj = new Inherit ();
// Base bObj = new Base (); この行はコンパイルできない
Base bObj = iObj;
iObj.Hello (); // Inherit のメソッドが実行される
bObj.Hello (); // Inherit のメソッドが実行される
}
}
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2132
コメント