LoginSignup
0
0

More than 1 year has passed since last update.

JAVA学習の記録⑤ 【オーバーロード】

Posted at

前回までの学び JAVA学習の記録④ 【カプセル化】

オーバーロードとは

javaでは、引数の型、数、並び順が異なれば、同じ名前のメソッドを定義することができ、この機能のことをオーバーロードという。
2023-03-14.png
上記のように引数が違っても、同じ目的のメソッドを1つの名前にすることができる。使うには、引数の型、数、順番を変えて同名のメソッドを定義するだけでよい。
逆にオーバーロードとして、認められないのは、
・引数の型、数、順番が同じで引数名だけを変えない場合
・戻り値の型だけを変えた場合
です。
オーバーロードの例

Dog.java
public class Dog {
  private String name; 
  
  private void printMessage(String message) {
    System.out.println( message );
  }
  
  public void eat() {
    printMessage("ご飯を食べるよ");
  }
  
  public void eat(String food) {
    printMessage(food + "を食べるよ");
  }
  
  public void  playToy(String toy) {
    printMessage(toy + "で遊ぶよ");
  }
  
  public void playToy() {
    printMessage("おもちゃで遊ぶよ");
  }
  
}
DogOverload.java
public class DogOverload {
  public static void main(String[] args) {
      Dog pochi = new Dog();
      pochi.eat();  //Dogクラスのeat()メソッドを呼び出す
      pochi.eat("高級なドッグフード");  //Dogクラスのeat(String food)メソッドを呼び出す
      pochi.playToy();  //DogクラスのplayToy()メソッドを呼び出す
      pochi.playToy("ボール");  //DogクラスのplayToy(String Toy)メソッドを呼び出す
  }
}

出力結果

ご飯を食べるよ
高級なドッグフードを食べるよ
おもちゃで遊ぶよ
ボールで遊ぶよ

オーバーロードした引数を取るメソッドと引数を取らないメソッドでeatメソッド,playToyメソッドを各2つずつ呼び出しました。

参考文献
「いちばんやさしいJAVAの教本」著者 石井真

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0