オーバーロード(overload)
オーバーロードとは、同じ名前のメソッドを定義することです。多重定義ともいいます。
Javaでは同じ名前のメソッドが複数あるとJava仮想マシンが混乱してしまうため、メソッドに同じ名前をつけることは基本的にはできません。しかし、例外的に仮引数の数または型が異なれば同じ名前のメソッドを複数定義することができます。
オーバーロード(引数の型が異なる場合)の例
public class Main {
public static int over ( int a , int b ){ ← overメソッド @
return a + b ;
}
public static double over ( double a , double b ){ ← overメソッド A
return a + b ;
}
public static String over ( String a , String b ){ ← overメソッド B
return a + b ;
}
public static void main ( String[ ] args ) {
System.out.println( over ( 5 , 10 ) ) ; ← overメソッド@ の呼び出し
System.out.println( over ( 1.5 , 8.2 ) ) ; ← overメソッドA の呼び出し
System.out.println( over ( "これが" , "オーバーロード" ) ) ; ← overメソッドB の呼び出し
}
}
public static int over ( int a , int b ){ ← overメソッド @
return a + b ;
}
public static double over ( double a , double b ){ ← overメソッド A
return a + b ;
}
public static String over ( String a , String b ){ ← overメソッド B
return a + b ;
}
public static void main ( String[ ] args ) {
System.out.println( over ( 5 , 10 ) ) ; ← overメソッド@ の呼び出し
System.out.println( over ( 1.5 , 8.2 ) ) ; ← overメソッドA の呼び出し
System.out.println( over ( "これが" , "オーバーロード" ) ) ; ← overメソッドB の呼び出し
}
}
実行結果
15
9.7
これがオーバーロード
9.7
これがオーバーロード
各メソッドの仮引数は、メソッド@では「 int 」、メソッドAでは「 double 」、メソッドBでは「 String 」と異なっているので、正確に呼び出してくれる。
オーバーロード(引数の数が異なる場合)の例
public class Main {
public static int over ( int a , int b ){ ← overメソッド @
return a + b ;
}
public static double over ( int a , int b , int c ){ ← overメソッド A
return a + b + c ;
public static void main ( String[ ] args ) {
System.out.println( "引数2つの合計は" + over( 10 , 20 ) ) ; ← overメソッド@ の呼び出し
System.out.println( "引数3つの合計は" + over( 10 , 20 , 30 ) ) ; ← overメソッド@ の呼び出し
}
}
public static int over ( int a , int b ){ ← overメソッド @
return a + b ;
}
public static double over ( int a , int b , int c ){ ← overメソッド A
return a + b + c ;
public static void main ( String[ ] args ) {
System.out.println( "引数2つの合計は" + over( 10 , 20 ) ) ; ← overメソッド@ の呼び出し
System.out.println( "引数3つの合計は" + over( 10 , 20 , 30 ) ) ; ← overメソッド@ の呼び出し
}
}
実行結果
引数2つの合計は30
引数2つの合計は60
引数2つの合計は60
仮引数の数の違いで識別され、正確に呼び出してくれる。
- アクティビティ アーキテクチャ アノテーション インスタンス化
- インタプリタ インテント エスケープシーケンス 演算子
- インクリメント・デクリメント演算子 オーバーライド オーバーロード
- オブジェクト オペランド オペレータ
- if文 if-else,if-else構文 import文 API FQCN
- onCreateメソッド @Override
- ガベージコレクション カレントディレクトリ 完全限定クラス名 関数
- クラス クラスローダー クラスローディング 継承
- コマンドプロンプト コメント コンパイラ コンパイル コンパイルエラー
- genフォルダ continue文
- 算術演算子 識別子 Java仮想マシン(JVM) 初期化 初期値
- 条件式 スコープ ステータスコード スレッド 制御構造
- ソースコード
- srcフォルダ switch文 System.out.print Scanner.nextLine
- 多次元配列 ダイアログ 代入演算子 ディレクトリ
- デフォルトパッケージ DDMSパースぺクティブ トレース
- Dos攻撃 do-while文
- 名前の空間 ネスト Null
- 配列 配列変数の宣言 配列の要素 配列の要素数 バイトコード
- パーミッション 引数 ビュー ビューグループ ビューシステム
- フィールド プリファレンス 変数 変数宣言の文 ポートレート
- package文 while文 for文 break文 png
- マニフェストファイル メソッド 文字列の比較 無限ループ
- 文字列結合演算子 戻り値 Math.max
- URI
- ランドスケープ リソース リテラル ログレベル 論理演算子
- Random.nextlnt resフォルダ









