C# には、サブクラスを通じて親クラス メソッドの新しい実装を再定義または提供するメカニズムが 2 つあり、これらの 2 つのメカニズムは、メソッドのオーバーライドとメソッドの隠蔽と呼ばれます。メソッドが再実装される方法に基づいて、メソッドを区別できるようになりました。
メソッドのオーバーライドとメソッドの非表示の重要な違いを次に示します。
キーワード | メソッドオーバーライド | メソッド非表示 | |
---|---|---|---|
定義 | メソッドのオーバーライドは、ポリモーフィズムを実現するメカニズムです。親クラスと子クラスは、パラメーターやシグネチャを含む同じメソッドを持ちます。サブクラス オブジェクトで呼び出された場合は、サブクラスの実装を呼び出します。 | 一方、メソッド隠蔽は、ユーザーが new キーワードを使用して基底クラスまたは親クラスのメソッドを再定義し、それによってその特定のメソッドの基底クラスの主要な基本実装を隠すことができる手法として定義できます。 。 | |
親クラスの実装へのアクセス | メソッドのオーバーライドでは、サブクラスは親クラスのメソッドの実装にアクセスできます。 | メソッドの隠蔽では、サブクラス参照を通じて親クラスのメソッドの実装にアクセスできません。 | |
修飾子の使用法 | メソッドのオーバーライドでは、override キーワードを使用します。 | メソッドの隠蔽では、new キーワードを使用してサブクラスに新しい実装を定義します。 | |
実装タイプ | メソッドのオーバーライドでは、メソッドの実装タイプはオブジェクトタイプです。 | ただし、メソッドの隠蔽では、メソッドの実装型は参照型になります。 | |
親クラスからサブクラスへの参照 | メソッドのオーバーライドで、親クラスの参照変数がサブクラスのオブジェクトを指す場合、サブクラスでオーバーライドされたメソッドを呼び出します。 | 一方、メソッド隠蔽では、親クラスの参照変数が子クラスのオブジェクトを指している場合、親クラスの隠蔽メソッドを呼び出します。 | |
目的 | メソッドのオーバーライドは、メソッドの実装を再定義するだけです。 | メソッドの隠蔽により、メソッドを完全に再定義できます。 |
以上がC# におけるメソッドのオーバーライドとメソッドの非表示の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。