C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのメソッドのオーバーライドとメソッドの非表示の違い


C#には、子クラスによる親クラスのメソッドの新しい実装を再定義または提供するための2つのメカニズムがあり、これら2つのメカニズムは、メソッドのオーバーライドとメソッドの非表示として知られています。これで、メソッドの再実装がどのように行われるかに基づいて、両方を区別できます。

以下は、メソッドのオーバーライドとメソッドの非表示の重要な違いです。

>
Sr。いいえ。 キー メソッドのオーバーライド メソッドの非表示
1 定義 メソッドのオーバーライドは、スーパークラスとサブクラスがパラメーターと署名を含む同じメソッドを持ち、サブクラスオブジェクトを使用して呼び出すと、サブクラスの実装が呼び出されるポリモーフィズムを実現するメカニズムです。一方、メソッドの非表示は、ユーザーが新しいキーワードを使用して基本クラスまたは親クラスのメソッドを再定義し、その特定のメソッドの基本クラスによって提供される主要な基本実装を非表示にする手法として定義できます。
2 親実装へのアクセス メソッドのオーバーライドで子クラスは親クラスのメソッド実装にアクセスできます。 メソッドを非表示にする場合、親クラスのメソッド実装には、子クラスの参照からアクセスできません。
3 使用される修飾子 メソッドオーバーライドの場合、overrideキーワードが使用されています。 メソッド非表示の場合、新しいキーワードを使用して、子クラスの新しい実装を定義します。
4 実装タイプ メソッドのオーバーライドでは、メソッドの実装タイプはオブジェクトタイプです。 一方、メソッド非表示のメソッドの実装タイプは参照タイプです。
5 親から子への参照 メソッドのオーバーライドでは、親クラスの参照変数が子クラスのオブジェクトを指している場合、子クラスのオーバーライドされたメソッドを呼び出します。 一方、メソッドの非表示では、親クラスの参照変数が子クラスのオブジェクトを指している場合、親クラスの非表示のメソッドを呼び出します。
6 使用法 メソッドのオーバーライドは、メソッドの実装を再定義するだけです。 メソッドを非表示にすると、メソッドを完全に再定義できます。

  1. Java8のデフォルトと静的インターフェース方式の違い。

    OracleのJavadocによると- デフォルトのメソッドを使用すると、ライブラリのインターフェースに新しい機能を追加し、それらのインターフェースの古いバージョン用に記述されたコードとのバイナリ互換性を確保できます。 静的メソッドは、オブジェクトではなく、それが定義されているクラスに関連付けられているメソッドです。クラスのすべてのインスタンスは、静的メソッドを共有します。 インターフェイスの静的メソッドはインターフェイスクラスの一部であり、実装またはオーバーライドすることはできませんが、クラスはデフォルトのメソッドをオーバーライドできます。 Sr。いいえ。 キー 静的インターフェ

  2. Pythonのメソッドと関数の違い

    機能 関数は、特定のタスクを実行するためのコードのブロックであり、独自のスコープを含み、名前で呼び出されます。すべての関数には、ゼロ(no)引数または複数の引数を含めることができます。終了時に、関数は1つ以上の値を返すことができる場合とできない場合があります。 基本的な関数構文 def functionName( arg1, arg2,….):    …….    # Function_body    …….. 独自の(ユーザー)、sum(ユーザーは任意の名前を