プログラミング

【Java初心者向け】オーバーロードって何?オーバーライドとの違いも抑えよう!

プログラミング
この記事は約4分で読めます。
Sponsored Links

オーバーロードとは

カップケーキ, デザート, ケーキ, 食品, おいしい, 菓子, ベーキング, ベーカリー, クリーム

オーバーロードとは「1つのクラスに同じ名前のメソッドを複数定義する」ということです。通常のメソッドだけでなく、コンストラクタオーバーロードすることができます。メソッド名が同じメソッドを複数定義すると、「パソコンは使い分けることができるの?」という心配をする人もいるかもしれません。では次に、メソッド名が同じでもメソッドを使い分ける方法について学習していきましょう。

オーバーロードを行う方法

赤ヘッドフォン, ヴィンテージのヘッドフォン, 電話でのお洒落な

オーバーロードしたメソッドを使い分けるためには引数の部分に工夫を加えます。①引数の型を変える ②引数の数を変える ③引数の順番を変えるという3つの方法でオーバーロードを実現します。

①引数の型を変える

public class Sample {
 int data;
 String score;

 public printData(int data){
  System.out.println("int型です。");
  System.out.println(data);
 }

 public printData(String score){
  System.out.println("String型です。");
  System.out.println(score);
 }
}

②引数の数を変える

public class Sample {
 int data_1 = 10;
  int data_2 = 20;

 public printData(int data_1){
  System.out.println(data_1);
 }

 public printData(int data_1, int data_2){
  System.out.println(data_1);
  System.out.println(data_2);
 }
}

③引数の順番を変える

public class Sample {
 int data;
 String score;

 public printData(int data, String score){
  System.out.println(data);
  System.out.println(score);
 }

 public printData(String score, int data){
  System.out.println(score);
  System.out.println(data);
 }
}

上記で紹介した3つの方法を利用することでオーバーロードを実現します。

エラーとなるケース

public class Sample {

 public static void main(String[] args) {
  System.out.println(printData(8, 10));
 }

 public printData(int data, double score){
  System.out.println(data);
  System.out.println(score);
 }

 public printData(double score, int data){
  System.out.println(score);
  System.out.println(data);
 }
}

基本型を入れる場合は注意が必要である。double型とint型は相互性があり、printDataメソッドを実施した場合はパソコンが使用するメソッドを区別することができないのでコンパイルエラーとなる。他にも「引数の変数名だけが異なっている場合」「戻り値だけが異なっている場合」「アクセス修飾子だけことなる場合」などは、パソコンがメソッドを判別することができず、コンパイルエラーになるので注意しましょう。

オーバーロードとオーバーライドの違い

アップル, ボケ味, フルーツ, 夜の明かり

オーバーロードとよくにた言葉としてオーバーライドという言葉があります。これらを混合してしまう人も多いかと思います。最後に「オーバーライド」と「オーバーロード」の違いについて押さえていきましょう!上記で学習した通り、オーバーロードは「1つのクラスに同じ名前のメソッドを複数作ること」でした。一方、オーバーライドは景勝などで出てくる単語で、「親クラスのメソッドと同じ名前のメソッドを子クラスで定義し直すこと」を意味します。

最後に

オーバーロードはメソッドを有効に使うことができる方法なので、ぜひ利用したい技術です。しっかりと用途を抑えて使用するようにしてくださいね!

タイトルとURLをコピーしました