目次:
定義-オーバーライドとはどういう意味ですか?
C#では、オーバーライドは、基本クラスで定義されている仮想メンバーを、派生クラスでのそのメンバーの定義で置き換えるために使用されるキーワードです。
オーバーライド修飾子を使用すると、プログラマは、基本クラスから継承された既存の仮想メンバーの特殊化を指定して、派生クラスでそのメンバーの新しい実装を提供できます。 メソッド、プロパティ、インデクサー、または派生クラスで変更または拡張する必要があるイベントで使用できます。
オーバーライド修飾子は、C#でポリモーフィズムの概念を実装することを目的としています。
オーバーライドは新しい修飾子とは異なります。前者はベースクラスの仮想メンバーをオーバーライドするためにのみ使用され、後者はベースクラスに含まれる定義を非表示にすることでベースクラスで定義された非仮想メンバーをオーバーライドするのにも役立ちます。
Techopediaによるオーバーライドの説明
オーバーライドは、仮想メソッドのコンテキストで主に使用されます。仮想メソッドでは、メソッドのタイプは、メソッドが呼び出されるインスタンスのランタイムタイプによって実行が決定されます。 呼び出し中、呼び出し元は、呼び出されたオブジェクトが派生クラスのインスタンスであったことを知る必要はありません。
たとえば、Shapeがそのクラスのすべてのオブジェクトに共通する基本的な実装を提供する基本クラスである場合、仮想メソッドCalculateAreaで定義できます。 SquareはShapeから派生したクラスで、CalculateAreaメソッドをオーバーライドして、正方形の面積を計算するために必要なロジックを実装できます。
派生クラスのメソッドをオーバーライドするには:
- 基本クラスのメソッドは、仮想修飾子で宣言する必要があります。
- 基本クラスのメソッドは抽象的ですが、静的ではありません。
- 基本クラスと派生クラスの両方のメソッドのアクセス修飾子は同じである必要があります。
- メソッドは、派生クラスと基本クラスの両方で同じシグネチャで定義する必要があります。
