2017-08-23 1 views
0

私のMicrosoftチュートリアルでは、派生クラスからメソッドを呼び出す場合は、これを 'base'に設定すると言われています。呼び出すメソッドの前にベースを使用した多態性構文

base.MethodOnBaseClass();

しかし、私はこれをテストするとき、それがなくても動作する「ベース」。 ちょうど:私のマイクロソフトのチュートリアルでは、私が使用する必要があると言いながら、目のオプションも働いている理由

MethodOnBaseClass();

誰かが説明することができます「ベースを。」。

+0

...どのlangage? – Quentin

答えて

0

使用するプログラミング言語を教えてください。私はあなたがC#アプリケーションをプログラミングしていると仮定します。

また、コードスニペットをいくつか挙げて、達成しようとしていることを教えてください。

私はあなたがchildclassからbaseclass関数にアクセスしようとしていることが分かります。これは、基本キーワード(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/base)を使用して実行できます。

説明されている動作には複数の原因がある可能性がありますが、最も簡単なのは、クラスから関数を派生させ、後でそれを上書きしなかったことです。次に、基底関数と子関数は同じになります。もっと明確な情報を投稿してください。

+0

はい私はC# – JeR

+0

を使用しています。私が言ったように、base.Method()とMethod()は同じ結果をもたらします。理解しやすいものは次のようなものです: 関数liveとmakeSoundを持つクラス動物を想像してください。生き物はすべての子供と同じような出力を持っていなければなりません。 "私は生きています"のように、すべての動物から音を遅らせるべきです。だから、犬に動物から継承させ、makeSound関数をオーバーライドします(アーリーバインディング)。あなたは今、異なるmakesSound関数を呼び出すことによって犬をさまざまな音にすることができますが、それは常に "私は生きている"と言うライブ関数を呼び出すに関係なく。 –