この文法は、基本クラスの仮想メソッドを宣言します。仮想メソッドは、特定の実装を提供するために、デリバティブカテゴリで書き直すことができます。
シーン1:部門クラス
<code class="language-c#">public virtual void DoIt();</code>派生した方法では、「新しい」の使用は新しい独立した方法を作成し、その名前は基本クラスの方法と同じです。ただし、これは書き直されるとは見なされず、基本クラスが呼び出された場合、基本クラスの動作は基本クラスの動作に影響しません。
シーン2:ベースクラス
これは非困難な方法であり、派生クラスで書き直すことはできません。デリバティブは、「新しい」モディファイアを使用して、同じ名前の新しいメソッドを実現する必要があります。
<code class="language-c#">public new void DoIt();</code>
シーン2:部門クラス
「オーバーライド」修飾子は、派生クラスのメソッドが基本クラスの同じ署名の別の方法を書き換えていることを示しています。呼び出しが基本クラスによって呼び出されると、書き換えの方法が実行されます。
<code class="language-c#">public void DoIt();</code>実際の違い
<code class="language-c#">public override void DoIt();</code>
派生クラスオブジェクトが参照される場合のみ、導出されたクラスで作成された新しい方法が呼び出されます。
推奨用途
以上がメソッド継承の「新しい」キーワードと「オーバーライド」キーワードの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。