メソッドのオーバーロードとオーバーライドの違いは何ですか?



この記事では、スーパーキーワードやさまざまなルールなど、さまざまな例を使用して、Javaでのメソッドのオーバーロードとオーバーライドの主な違いについて説明します。

Javaプログラミング言語はそれに関しては最良の選択です 。のような概念で クラス 、 、 、など、非常に扱いやすくなります 。アクセスのしやすさと簡単な構文により、コードが効率的になり、複雑さが軽減されます。この記事では、Javaでのメソッドのオーバーロードとオーバーライドについて学習します。このブログで説明されているトピックは次のとおりです。

Javaでのメソッドのオーバーロードとは何ですか?

メソッドのオーバーロードにより、引数または引数のタイプに基づいて異なる同じ名前を持つことができます。これは、コンパイル時のポリモーフィズムに関連している可能性があります。以下は、Javaでメソッドをオーバーロードする際に留意しなければならないいくつかの指針です。





  • 戻り値の型をオーバーロードすることはできません。

    is-関係java
  • 過負荷にすることはできますが 、引数または入力パラメータは異なっている必要があります。



  • staticキーワードのみが異なる場合、2つのメソッドをオーバーロードすることはできません。

  • 他の静的メソッドと同様に、main()メソッドもオーバーロードできます。

メソッドのオーバーロード-java-edurekaでのメソッドのオーバーロードとオーバーライド



Pythonでメソッドのオーバーロードがどのように機能するかを理解するために、簡単なプログラムを見てみましょう。

public class Div {public int div(int a、int b){return(a / b)} public int div(int a、int b、int c){return((a + b)/ c)} public static void main(String args []){Div ob = new Div()ob.div(10、2)ob.div(10、2、3)}}
 出力: 5 4

上記のプログラムには、名前は同じでパラメーターが異なる2つのメソッドがあります。これは、メソッドのオーバーロードがどのように機能するかです 。

なぜメソッドのオーバーロード?

Javaでメソッドのオーバーロードを使用する主な利点は、同じことを行うために関数を何度も定義しない自由が得られることです。以下の例では、2つのメソッドは基本的に除算を実行しているため、同じ名前でパラメーターが異なる異なるメソッドを使用できます。また、コンパイル時のポリモーフィズムにも役立ちます。

main()メソッドのオーバーロード:

以下は、Javaでmain()メソッドをオーバーロードする例です。

public class Edureka {public static void main(String [] args){System.out.println( 'hello')Edureka.main( 'edurekan')} public static void main(String arg1){System.out.println( ' welcome '+ arg1)Edureka.main(' welcome '、' to edureka ')} public static void main(String arg1、String arg2){System.out.println(' hello '、+ arg1、+ arg2)}}
 出力: こんにちはようこそedurekanこんにちは、edurekaへようこそ

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

  • Javaで静的メソッドをオーバーロードするプログラム。
public class Test {public static int func(int a){return 100} public static char func(int a、int b){return'edureka '} public static void main(String args []){System.out.println( func(1))System.out.println(func(1,3))}}
 出力: 100 edureka
  • 同じ名前の3つのメソッドをオーバーロードするプログラム。
public class Add {public int add(int a、int b){return(a + b)} public int add(int a、int b、int c){return(a + b + c)} public double add(double a、double b){return(a + b)} public static void main(String args []){Add ob = new Add()ob.add(15,25)ob.add(15,25,35)ob .add(11.5、22.5)}}
 出力: 40 75 34

Javaでメソッドをオーバーライドするものは何ですか?

Javaでの継承には、親クラスと子クラスの間の関係が含まれます。両方のクラスに同じ名前のメソッドと引数またはパラメーターが含まれている場合は常に、実行中に一方のメソッドが他方のメソッドをオーバーライドすることは確実です。実行されるメソッドは、オブジェクトによって異なります。

子クラスオブジェクトがメソッドを呼び出すと、子クラスメソッドは親クラスメソッドをオーバーライドします。それ以外の場合、親クラスオブジェクトがメソッドを呼び出すと、親クラスメソッドが実行されます。

メソッドのオーバーライドは、Javaでランタイムポリモーフィズムを実装するのにも役立ちます。簡単な例を見て、Javaでメソッドのオーバーライドがどのように機能するかを理解しましょう。

class Parent {void view(){System.out.println( 'this is a parent class method)}} class Child extends Parent {void view(){System.out.println(' this is a child class method)}} public static void main(String args []){Parent ob = new Parent()ob.view()Parent ob1 = new Child()ob1.view()
 出力: これは子クラスのメソッドです

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

  • ザ・ アクセス編集 オーバーライドされたメソッドに対してのみ、より多くのアクセスを許可できます。

  • 最後の メソッドはメソッドのオーバーライドをサポートしていません。

    マージソート決定木4要素
  • 静的メソッドはオーバーライドできません。

  • プライベートメソッドはオーバーライドできません。

  • オーバーライドするメソッドの戻り値の型は同じである必要があります。

    AWSCLIを開く方法
  • superキーワードを使用して、オーバーライドメソッドで親クラスメソッドを呼び出すことができます。

  • ビルダー 子クラスと親クラスが同じ名前のコンストラクターを持つことはできないため、オーバーライドすることはできません。

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

  • スーパーキーワードを使用してオーバーライドを表示するプログラム
class Parent {void show(){System.out.println( 'parent class method')} class Child extends Parent {void show(){super.show()System.out.println( 'child class method')} public static void main(String args []){Parent ob = new Child()ob.show()}}
 出力: 親クラスメソッド子クラスメソッド

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

以下は、Javaでのメソッドのオーバーロードとオーバーライドの主な違いです。

メソッドのオーバーロード メソッドのオーバーライド
  • プログラムの読みやすさを向上させるために使用されます
  • すでに親クラスにあるメソッドの特定の実装を提供します
  • 同じクラス内で実行されます
  • 複数のクラスが含まれます
  • オーバーロードの場合、パラメータは異なっている必要があります
  • オーバーライドする場合、パラメータは同じである必要があります
  • コンパイル時のポリモーフィズムの例です
  • ランタイムポリモーフィズムの例です
  • 戻り値の型は異なる場合がありますが、パラメーターも変更する必要があります。
  • 戻り値の型はオーバーライドで同じでなければなりません
  • 静的メソッドはオーバーロードされる可能性があります
  • オーバーライドには静的メソッドは含まれません。

このブログでは、メソッドのオーバーロードとメソッドのオーバーライドについて詳しく説明しました。クラス、オブジェクト、および継承やポリモーフィズムなどの概念が関与するため、Javaのメソッドをオーバーロードまたはオーバーライドすることの意味を明確に理解することが非常に重要になります。

Javaプログラミング言語は、オブジェクト指向プログラミングの頂点であり、多くのアプリケーションが組み込まれています。需要と人気に伴い、意欲的なJava開発者は、プログラミング言語の基本的な概念に習熟している必要があります。 Edureka’sに登録する 学習を開始します。

質問がありますか?この記事の「Javaでのメソッドのオーバーロードとメソッドのオーバーライド」に関するコメントセクションでこれについて言及してください。できるだけ早くご連絡いたします。