前回までの学び JAVA学習の記録④ 【カプセル化】
オーバーロードとは
javaでは、引数の型、数、並び順が異なれば、同じ名前のメソッドを定義することができ、この機能のことをオーバーロードという。
上記のように引数が違っても、同じ目的のメソッドを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の教本」著者 石井真