オーバーロードとオーバーライドの違い| オーバーロードとオーバーライド
公開: 2021-06-15目次
序章
オブジェクト指向プログラミングは、ソフトウェア開発部門で重要な役割を果たします。 クラス、オブジェクト、ポリモーフィズム、継承、データ抽象化、ジェネリックプログラミング、例外的な処理など、いくつかの概念がこのタイプのプログラミングに関連付けられています。
開発者は常に、メソッドのオーバーロード、メソッドのオーバーライドなどのサブコンセプトを持つポリモーフィズムの概念が非常に興味深いと感じています。ただし、ポリモーフィズムの概念をよりよく理解するには、オーバーロードとオーバーライドの違いを理解する必要があります。
メソッドのオーバーロードとメソッドのオーバーライドの違い
メソッドのオーバーロードとメソッドのオーバーライドには多くの違いがあります。 Javaでのメソッドのオーバーロードとオーバーライドの違いのリストを以下に示します。
メソッドのオーバーロード | メソッドのオーバーライド | |
1 | このメソッドは、プログラムの可読性を高めるために使用されます。 | このメソッドは、スーパークラスによって提供されるメソッドの実装を提供するために使用されます。 |
2 | クラス内で実行されます | IS-A(継承)関係を持つ2つのクラスで発生します。 オーバーライドするには、ベースクラスと子クラスが必要です。 |
3 | メソッドまたは関数は、同じ名前と異なるシグネチャを持っている必要があります。 | メソッドまたは関数は、同じ名前と同じシグネチャを持っている必要があります。 |
4 | このメソッドで使用されるパラメーターは異なる必要があります。 | メソッドのオーバーライドの場合も同じパラメーターを使用する必要があります。 |
5 | これは、コンパイル時のポリモーフィズムの例です。 オーバーロードメソッド呼び出しのその定義へのバインドは、コンパイル時に行われます。 | これは、実行時のポリモーフィズムの例です。 オーバーライドされたメソッド呼び出しのその定義へのバインドは、実行時に行われます。 |
6 | 戻り型を変更するだけでは、メソッドのオーバーロードは実行できません。 戻りタイプは異なる場合と同じ場合があります。 ただし、パラメータは異なる必要があります。 | メソッドオーバーライドの戻りタイプは、同じまたは共変である可能性があります。 |
7 | メソッドのオーバーロードは静的メソッドに適用される場合があります。 これは、クラスが同じ名前の複数の静的メソッドを持つことができることを意味します。 | メソッドのオーバーライドは静的メソッドには適用できません。 |
8 | メソッドのオーバーロードには静的バインディングが使用されています。 | メソッドのオーバーライドには動的バインディングが使用されています。 |
9 | メソッドのオーバーロードにより、パフォーマンスが向上します。 | メソッドのオーバーロードと比較してパフォーマンスが低下します。 その理由は、オーバーライドされたメソッドのバインドが実行時に行われているためです。 |
10 | プライベートメソッドとfinalメソッドはオーバーロードされる可能性があります。 クラスには、同じ名前の複数のprivate/finalメソッドを含めることができます。 | プライベートメソッドとfinalメソッドはオーバーライドできません。 子クラスは、基本クラスのprivate/finalメソッドをオーバーライドできません。 |
11 | メソッドのオーバーロードの場合、継承が必要な場合と不要な場合があります。 | メソッドをオーバーライドする場合は、常に継承が必要です。 |
12 | これは、メソッドの動作をさらに追加するために使用されます。 | これは、既存のメソッドの動作を変更するために使用されます。 |
13 | メソッドのオーバーロードに複数のクラスが存在する必要はありません。 | メソッドのオーバーライドには、常に少なくとも2つのクラスが必要です。 |
14 | オーバーロードが中断すると、コンパイル時エラーが発生し、簡単に修正できます。 | ブレークをオーバーライドすると、実行時に影響が表示されるため、プログラムに重大な問題が発生する可能性があります。 |
15 | メソッドのオーバーロードには、異なるシグニチャが必要です。 | メソッドのオーバーライドには同じ署名が必要です。 |
16 | オーバーロードメソッドのアクセス修飾子は、何でもかまいません。 | サブクラスメソッドのアクセス修飾子は、オーバーライドするメソッドのスーパークラスメソッドのアクセス修飾子と同じかそれ以上である必要があります。 |
17 | スローされる例外は、メソッドのオーバーロードの概念では何でもかまいません。 | メソッドのオーバーライドでは、スローされるチェックされていない例外は何でもかまいません。 チェックされた例外の場合、オーバーライドするメソッドは、オーバーライドされたメソッドによって宣言されたものよりも新しい、またはより広い例外をスローしないようにする必要があります。 |
18 | コンパイラは常に、参照タイプに基づいてメソッドの解決を処理します。 | JVMは、ランタイムオブジェクトに基づいてメソッドの解決を処理します。 |
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
次は何?
フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
ランタイムポリモーフィズムとは何ですか?
ランタイムポリモーフィズムは、動的型付けを伴う一種のポリモーフィズムです。 これは、オブジェクトを単一のタイプであるかのように操作できることを意味します。 これは、オブジェクトが基になる型に関係なく、単一の型を持っているかのように操作される静的ポリモーフィズムに似ています。 これは、5つの主要なソフトウェア設計原則の1つです。 オブジェクト指向プログラミングで使用されます。 これは、実行時の条件に応じて、変数がさまざまなオブジェクトを参照できることを意味します。 たとえば、変数が宣言されたときに変数を使用してDogオブジェクトを参照できますが、プログラムの実行中に、変数はCatオブジェクトを参照できます。 自動型変換です。 たとえば、整数変数iがあり、それに文字列値を割り当てると、それは文字列変数になります。
オーバーライドはオーバーロードとどのように異なりますか?
オーバーロードされたメソッドをオーバーライドできますか?
オーバーロードされたメソッドは(パラメーターの数とタイプの点で)通常のメソッドと同じですが、オーバーロードされたメソッドが通常のメソッドとは異なるタイプのパラメーターを受け入れることができるように記述されている点が異なります。 通常のメソッドをオーバーライドするのと同じ方法で、オーバーロードされたメソッドをオーバーライドできます。