Python でのメソッドのオーバーライド

公開: 2023-01-28

目次

メソッドのオーバーライドを理解するための前提条件:

メソッドのオーバーライドは、オブジェクト指向プログラミングにおける最も重要な概念の 1 つです。 親クラスで定義された子クラスの特定の関数の実装は、メソッドのオーバーライドによって変更できます。 メソッドのオーバーライドは、祖先と呼ばれる親クラスの 1 つによって提供されるメソッドの実行を変更する子クラスの機能として定義できます。 関数をオーバーライドするには、クラスが次の基準を満たす必要があります。

  • 継承可能なクラス: クラス内で関数のオーバーライドを実行することはできません。 親クラスからの子クラスの派生が必要です。
  • 子クラスと親クラスで再定義された関数のシグネチャは同じでなければなりません。 つまり、オーバーライドされた関数と親クラスの関数は、同じ数の引数とパラメーターを持つ必要があります。

Python でのメソッドのオーバーライドの概要:

前に定義したように、オブジェクト指向プログラミング言語のプロパティをオーバーライドするメソッド。そのおかげで、サブクラスは、そのスーパークラスの 1 つによって既に提供されているメソッドの特定の実装を提供します。 サブクラス (子クラス) 内のメソッドは、サブクラス メソッドがそのスーパー クラス内のメソッドと同じパラメーターまたはシグネチャ、同じ名前、同一の戻り値の型またはサブタイプを持つ場合、スーパー クラス (親クラス) メソッドをオーバーライドすると言われます。

実行されたメソッドを呼び出すために使用されるオブジェクトによって、そのバージョンが決まります。 スーパークラスのオブジェクトを使用してメソッドを呼び出すと、スーパークラスのバージョンが実行されます。 ただし、メソッドがサブクラスのオブジェクトによって呼び出された場合は、子クラスのバージョンが実行されます。 つまり、参照されるオブジェクトの型は、オーバーライドされて実行されるメソッドのバージョンを決定するために使用されます。 オーバーライドされたメソッドのバージョンは、参照変数の型によって決まりません。

upGrad のデータ サイエンス コースをチェックしてください

メソッドオーバーライドの利点:

Python でのメソッド オーバーライドの主な利点は、親クラスのコードを変更することなく、継承されたメソッドに対してクラス自体が定義したモデルをクラスが提供することです。 この機能は、子クラスが複数の子クラスを持つ親クラスを使用する場合にも役立ちます。 この場合、親クラスのコードを変更せずに、親クラスのメソッドとパラメーターを子クラスから呼び出すことができます。

人気のデータ サイエンス コースを探す

IIITBのデータサイエンスのエグゼクティブポスト大学院プログラム ビジネス上の意思決定のためのデータ サイエンスのプロフェッショナル認定プログラム アリゾナ大学でデータ サイエンスの理学修士号を取得
IIITB のデータ サイエンスの高度な証明書プログラム メリーランド大学のデータ サイエンスとビジネス分析のプロフェッショナル認定プログラム データサイエンスコース

人気のデータ サイエンス記事を読む

データ サイエンスのキャリア パス: 包括的なキャリア ガイド データ サイエンスのキャリア成長: 仕事の未来はここにあります データ サイエンスが重要な理由データ サイエンスがビジネスに価値をもたらす 8 つの方法
マネージャーにとってのデータサイエンスの関連性 すべてのデータ サイエンティストが持つべき究極のデータ サイエンス チート シート データ サイエンティストになるべき 6 つの理由
データ サイエンティストの 1 日: 彼らは何をしているのか? 神話の崩壊: データ サイエンスにコーディングは必要ない ビジネス インテリジェンスとデータ サイエンスの違い: 違いは何ですか?

メソッドのオーバーライドとメソッドのオーバーロードの違い

メソッドのオーバーライド

メソッドのオーバーロード

親クラスと子クラスの両方のメソッドまたは関数は、同じシグネチャと同じ名前を持つ必要があります。 関数またはメソッドは同じ名前でなければなりません。 ただし、それらの署名は同じである必要はありません。
これはランタイム ポリモーフィズムの例です。 このプロセスは、コンパイル時のポリモーフィズムの一例です。
Python でメソッドをオーバーライドするには、継承が必須です。 場合によっては、クラスの継承が必要になることがあります。 ただし、すべての場合に必要とは限りません。
メソッドのオーバーライドは、親クラスと子クラスのメソッド間で発生します。 ただし、クラス内で発生することはありません。 メソッドのオーバーロードは、同じクラス内のメソッド間で発生します。
この機能は、既存のメソッドの動作を変更するために使用されます。 メソッドの動作にさらに追加するために使用されます。
メソッドのオーバーライドを実行するには、少なくとも 2 つのクラス (子クラスと親クラス) が必要です。 同じクラス内のメソッド間でオーバーロードが発生するため、追加のクラスは必要ありません。

Python でのメソッドのオーバーライドについて詳しく学びたい場合は、18 か月の Master of Science in Data Scienceを受講することをお勧めします upGrad は、IIIT バンガロールとリバプール ジョン ムーア大学からこのコースを提供しています。 このコースでは、統計、Python を使用した予測分析、機械学習、データ視覚化、ビッグデータ分析などのスキルを習得できます。 Python の概念に関する深い知識を持つ学生は、ディープ ラーニング、自然言語処理、ビジネス分析、データ エンジニアリングなどの科目に取り組むのに適した立場にあります。

この記事を共有したいですか?

将来のキャリアに備える

データサイエンスの理学修士号を申請する