C Sharp/仮想関数

提供: MonoBook
< C Sharp
2012年5月30日 (水) 06:33時点におけるimported>Administratorによる版 (→‎関連項目)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

C#における仮想関数(virtual method)とは、オーバーライドが可能な関数メソッド)のことである。

継承元の関数メソッド)の宣言に「virtual」と付けることでオーバーライドが可能であることを明示し、継承先の関数メソッド)の宣言に「override」と付けることで実際にオーバーライドすることができる。

記述例[編集 | ソースを編集]

// 霊長類クラス
class Primate {
    public virtual string SayHello() {
        return "うほっ";
    }
}

// 日本人クラス
class Japanese : Primate {
    public override string SayHello() {
        return "こんにちは世界";
    }
}

備考[編集 | ソースを編集]

Javaとの相違[編集 | ソースを編集]

Javaでは基本的にすべての関数メソッド)が暗黙的・強制的に仮想関数になるのに対して、C#では明示しなければ仮想関数にはならずオーバーライドできないという点にハマる人が多いので注意する必要がある。

その他[編集 | ソースを編集]

virtualキーワードは、メソッドの他にも、プロパティインデクサイベントなどに付けることも出来る。

なお、仮想プロパティは仮想関数と同様に動作するが、宣言や呼び出しの構文が違うのでC#の構文の中でも混乱しやすいものだと思う。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]


外部リンク[編集 | ソースを編集]