C#書き換えと隠れのメソッド継承の観点から、C#は、基本クラスのメソッドを再定義するための2つの異なるテクノロジーを提供します:書き換えと隠蔽。これらの2つのテクノロジーは、作業方法と継承チェーンへの影響という点で根本的な違いがあります。 隠された
Hiddenを使用すると、基礎中国の方法と同じ名前の新しい方法を作成できますが、
キーワードは使用されません。この方法は、派生クラスのローカルメンバーになり、基礎方法を隠しています。派生インスタンスが非表示の方法を呼び出すと、継承レベルの構造に関係なく、このクラスの実装を直接実行します。 例:
override
この例では、この例では、メソッド
に隠されており、メソッドは書き直されています。 (instance)が呼び出すと、
in<code class="language-csharp">class A { public int Foo(){ return 5;} public virtual int Bar(){return 5;} } class B : A { public new int Foo() { return 1;} //隐藏 public override int Bar() {return 1;} //重写 }</code>
が直接戻ります。 Foo
B
書き換えBar
clB
対照的に、書き換えにはB
キーワードが必要です。これにより、基本クラスで仮想メソッドの新しい実装を定義できます。派生インスタンスが書き換え方法を呼び出すと、継承チェーンに従って派生クラスに実装されます。 Foo
1
例:B
Foo
の方法が書き換えられます。 がを呼び出すと、が返されます。なぜなら、
inが書き換えているからです。 override
隠されたものと書き換えの選択は、特定のニーズに依存します。
非表示:B
基本クラスの継承方法を非表示にし、ローカル実装を使用する場合は、Hiddenを使用します。 Bar
clB
再加工:Bar
継承方法を再定義し、派生クラスの実装を実行する場合は、書き換えを使用します。 1
B
以上がC#のオーバーライドとシャドーイング:各テクニックをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。