2016-12-07 5 views
-7

C#プログラミング言語の質問。親クラスの仮想メソッドには独自の実装本体ブロックがありますか?

質問:「親クラスの仮想メソッドは、独自の実装本体ブロックを持っています」。 私の答え: "偽"。

私の答えは正しいですか?そうでないなら、私に説明してください。

+1

それは、独自の実装を持つことができますが、ヘルプセンターをお読みください –

+0

それを上書きすることができます。 – Lexi

+3

いくつかの調査を行い、C#の仕様をチェックしてみませんか?具体的には、セクション1.6.6.4 – Fran

答えて

1

いいえ、あなたの答えは、一般的なケースでは、間違っています。 C#で

仮想メソッド宣言には、2つの(*)の方法がある:最初のケースで

virtual Foo Method1() 

または

abstract Foo Method2() 

は、この方法は、独自の実装体を有することが必須ですブロック(または、それ自身の式を持つ関数メンバ)。 2番目の場合は逆ですが、それは必須ではありません。前者派生クラスでオーバーライドすることができ、後者は、非抽象派生クラスでオーバーライドされなければなりません。最後に、少なくとも大部分の仮想メソッドは前者の形式です。

(*)純粋主義者は、そのインターフェイスのメンバーはまた、仮想メソッド(最終仮想正確には)ある主張するかもしれないが、それは答えを変更しないように私はこの問題を無視します。

関連する問題