c#継承:new
およびoverride
c#継承では、キーワードnew
およびoverride
は、派生クラスでメソッド動作を管理するための明確な方法を提供します。 この説明は、彼らの違いと適切な使用法を明確にします
修飾子:個別のメソッドの定義new
new
は基本クラスのメソッドを上書きしません。代わりに、完全に独立した方法を作成します
例:
ここで、
は明確な方法です。 A<code class="language-csharp">public class BaseClass { public void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public new void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>インスタンスで呼び出してください。派生クラスのバージョンを実行します。
インスタンスでそれを呼び出して、基本クラスのバージョンを実行します。
DerivedClass.MyMethod()
MyMethod()
DerivedClass
モディファイア:仮想メソッドの置換BaseClass
モディファイアは、基本クラスからのA override
仮想メソッドの実装を置き換えるために使用されます。 基本クラスの方法
(またはoverride
)として宣言する必要があります。 派生クラスのインスタンスでメソッドが呼び出されたときに派生クラスのバージョンが呼び出されるようにします。
例:virtual
abstract
この場合、override
、
。 A
<code class="language-csharp">public class BaseClass { public virtual void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public override void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>
機能
DerivedClass.MyMethod()
BaseClass.MyMethod()
各修飾子を使用する時期
new
派生クラスのメソッドと名前を共有している場合でも、派生クラスに完全に個別のメソッドが必要な場合は
使用override
ベースクラスで定義された仮想メソッドの動作を拡張または変更する場合、その特定の方法の継承関係を維持しながら、派生クラス内で専門的な実装を提供します。
以上がC#継承の「新しい」と「オーバーライド」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。