おぼえがき_オーバーロード
引数が違っていれば、同じクラスの中に同じ名前のメソッドを定義できる。
引数が違うものにして、同じクラスの中に同じメソッドを作ること
→オーバーロード
class Test{
int sum(int i,int j){
return i+j;
}
int sum(int i,double d){
return (int)(i+d);//double型をint型に
}
}
public class sample19{
public static void main(String[] args){
Test test = new Test();
System.out.println(test.sum(1,2));//一つ目のsumメソッドを実行
System.out.println(test.sum(2,2.5));//二つ目のsumメソッドを実行
}
}
実行結果
3
4.5
引数の型を同じにして、戻り値の型を異なるものにしてみた
class Test{
double sum(int i,double d){
return i+d;
}
int sum(int i,double d){
return (int)(i+d);
}
}
コンパイル結果
sample19.java:5: sum(int,double) は Test で定義されています。
int sum(int i,double d){
^
エラー 1 個
引数が同じ場合、戻り値だけ違う型に設定してもダメ