\r\n\r\n

オーバーロード(過負荷)とジャバでのオーバーライドの違い

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発における主要なパラダイムの1つです。クラスとオブジェクトを使ってプログラムを設計するアプローチです。クラスは設計図である。オブジェクトに含まれるべきものを記述する。または、オブジェクトのプロパティを定義する必要があります。このように、オブジェクトはクラスのインスタンスです。これらのオブジェクトは他のオブジェクトと通信する。 oop oopの主要な概念の1つにポリモーフィズムがある。オブジェクトが複数の振る舞いをする能力のことである。ポリモーフィズムはオーバーロードとオーバーライドの2つに分けられる。この記事では、javaにおける両者の違いについて説明します。 javaにおけるオーバーロードと上書きの主な違いは、オーバーロードは異なる実装を使用して複数の...

主な違い - javaにおけるオーバーロードとオーバーライト

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発における主要なパラダイムである。クラスとオブジェクトを使ってプログラムを設計するアプローチです。クラスは設計図である。オブジェクトに含まれるべきものを記述する。または、オブジェクトのプロパティを定義する必要があります。このように、オブジェクトはクラスのインスタンスです。これらのオブジェクトは、他のオブジェクトと通信します。OOPの主要な概念の1つはポリモーフィズムです。オブジェクトが複数の振る舞いをする能力のことである。ポリモーフィズムはオーバーロードとオーバーライドの2つに分けられる。Javaにおけるオーバーロードとオーバーライドの主な違いは、オーバーロードは同じ名前のメソッドを異なる実装で複数作成する機能、オーバーライドはスーパークラスに既に存在するサブクラスのメソッドに実装を提供する機能であることです。

カタログ

1. 概要と主な違い 2. Javaにおけるオーバーロードとは 3. Javaにおける上書きとは 4. Javaにおけるオーバーロードと上書きの類似点 5. 横並びの比較 - 表形式でのJavaにおけるオーバーロードと上書き 6. まとめ

javaのオーバーロードは何ですか?

オーバーロードとは、同じ名前のメソッドを異なる実装で複数作成する機能で、以下のJavaのコードを参照してください。

超载(overloading)和在java中重写(overriding in java)的区别

図01:パラメータのオーバーロード数の使い分けを説明するJavaプログラム

上のプログラムによると、クラスAには同じ名前のメソッドが2つあります。最初のsumメソッドは2つの引数を持つ。2番目のsumメソッドは3つの引数を持つ。A型のオブジェクトを生成してsum(2,3)を呼び出すと、2つの引数を持つsumメソッドsum(inta, intb)を呼び出して5を返す。 A型のオブジェクトを生成してsum(2,3,4)を呼び出すと、3つの引数を持つ他のsumメソッド sum(inta, intb, intc) を呼び出して9を返してくれる。

メソッドは同じ名前ですが、パラメータの数が異なります。同じオブジェクトでも異なる挙動が観察されることがあります。この考え方をオーバーロードといいます。静的バインディング、コンパイル時ポリモーフィズムとも呼ばれる。

また、異なるデータ型でオーバーロードすることも可能です。以下のJavaコードを参照してください。

超载(overloading)和在java中重写(overriding in java)的区别

図02は、Javaプログラムのオーバーロード量の違いについて説明したものです。

上のプログラムでは、sum (inta, intb) メソッドは2つの整数値を取り、sum (double a double b) メソッドは2つの2倍値値を取るという、同じ名前の2つのメソッドで構成されています。A型のオブジェクトを作成してsum(2,3)を呼び出すと、sum(inta, intb)を呼び出して値5を返す。sum(3.4, 5.6) を呼び出すと、sum(double a double b) を呼び出して値 9.0 を返してくれる。この例では、メソッドは同じ名前だが変数の型が異なっている。これもオーバーロードです。

javaでのオーバーライドは何ですか?

Javaでは、既に存在するクラスを使ってサブクラスを作ることができる。新しいクラスを一から作るのではなく、既に存在するクラスのプロパティやメソッドを利用することが可能です。既存のクラスはスーパークラスで、派生クラスはサブクラスです。サブクラスが、すでにスーパークラスにあるメソッドの実装を提供することを、上書きといいます。以下のJavaプログラムをご覧ください。

超载(overloading)和在java中重写(overriding in java)的区别

図03:書き直されたJavaプログラム

上記のプログラムによると、クラスAはdisplay()メソッドを持っています。クラスBはクラスAから拡張されているので、クラスBはクラスAのプロパティとメソッドにアクセスすることができます。クラスBは、特定の実装を持つメソッドdisplay()を持ちます。クラスAにdisplayメソッドがあっても、クラスBのdisplayメソッドでオーバーライドされるため、クラスAのオブジェクトを生成してdisplayメソッドを呼び出すと、出力はBになる。サブクラスは、スーパークラスに既に存在するメソッドを実装しています。

この概念はオーバーライドとして知られるポリモーフィズムの一種である。また、レイトバインディング、ダイナミックバインディング、ランタイムポリモーフィズムとも呼ばれる。

オーバーロード(過負荷)とジャバでのオーバーライドの共通点

  • どちらもポリモーフィズムの一種である。
  • オーバーロードとオーバーライドでは、メソッドは同じ名前になります。

オーバーロード(過負荷)とジャバでのオーバーライドの違い

Javaでのオーバーロード vs. Javaでのオーバーロード
Javaにおけるオーバーロードとは、同じ名前のメソッドを異なる実装で複数作成する機能です。 Javaにおけるオーバーライドとは、スーパークラスに既に存在するメソッドに対して、サブクラスのメソッドで特定の実装を提供することです。
パラメータ
オーバーロードでは、同じ名前のメソッドであっても、パラメータの数が異なったり、パラメータの種類が異なったりします。 書き換えでは、メソッドは同じ名前を持ち、パラメータも同じでなければならない。
トピックス
オーバーロードはクラス内で発生します。 継承関係を持つ2つのクラスで上書きは発生する。
同義語
オーバーロードはコンパイル時ポリモーフィズムと呼ばれます。 書き換えることをランタイムポリモーフィズムといいます。

概要 - オーバーロード(過負荷) vs. ジャバでのオーバーライド

ポリモーフィズムは、オブジェクト指向プログラミングの重要な概念である。オブジェクトが複数の振る舞いをする機能を提供します。これは、オーバーロードでもオーバーライドでも構いません。オーバーロードはコンパイル時多相性、書き換えは実行時多相性である。ソフトウェア・アプリケーションの開発に役立つ。オーバーロードとの違いは、オーバーロードは同名のメソッドを異なる実装で複数作成する機能、オーバーライティングはスーパークラスに既に存在するメソッドに対して、サブクラスのメソッドで特定の実装を提供する機能であることです。オーバーロードとオーバーライドは、Javaで実装することができます。

ダウンロード PDFリロード対Javaリライト

本記事のPDF版をダウンロードし、オフラインで使用する場合は、引用の指示に従ってください。PDF版のダウンロードはこちらJavaにおけるオーバーロードと上書きの違いについて

引用
  • 2020-10-19 21:20 に公開
  • 閲覧 ( 23 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ