>> Java入門トップに戻る

メソッドのオーバーロード

Javaのメソッドのオーバーロード(多重定義)について説明します。

メソッドのオーバーロードとは同じ名前のメソッドを引数の型や数、順番などを変えて複数定義することです。
コンストラクタ作成のページでもオーバーロードについては少し説明しましたが、コンストラクタ以外の普通のメソッドでもオーバーロード可能です。
では、以下のコードを見てください。
package test2;

public class Overload_Test {
	public static void main(String[] args){
		
		Overload_Test obj = new Overload_Test();
		
		//引数のないechoHelloメソッドを呼び出し
		obj.echoHello();
		
		//引数のあるechoHelloメソッドを呼び出し
		obj.echoHello("こんにちは!");
		
		
	}
	
	public void echoHello(){
		System.out.println("Hello!");
	}
	public void echoHello(String str){
		System.out.println(str);
	}
}
上記のOverloadクラスでは、「echoHello」というメソッドを二つ定義しています。
1つ目は引数がなく、ただHelloと出力するだけのメソッド。
2つ目は引数があり、その引数の文字を出力するメソッド。

9行目では引数を指定せずにechoHelloメソッドを呼び出しているので、1つ目のechoHelloメソッドが呼ばれ、Helloと表示されます。
12行目では引数を指定してechoHelloメソッドが呼ばれてるので、2つ目のechoHelloメソッドが呼ばれ、引数に指定した文字列が表示されます。

このようにメソッドを同じ名前で、引数の数・型・順番を変えることによって複数定義することが出来ます。
引数の数が一緒でも、「型や順番」が異なればOKです。つまり、
	public void echoHello(){
		System.out.println("Hello!");
	}
	public void echoHello(String str){
		System.out.println(str);
	}
	public void echoHello(int num){
		System.out.println(num);
	}
	public void echoHello(double num){
		System.out.println(num);
	}
	public void echoHello(int num1,double num2){
		System.out.println(num1 + num2);
	}
	public void echoHello(double num1,int num2){
		System.out.println(num1 + num2);
	}
このような感じで複数定義することが可能です。
呼び出す時の引数に、それぞれのメソッドに対応する型の値や変数を指定すれば、その型に応じたメソッドが呼ばれます。

メソッドのオーバーロードもよく使うのでしっかりと覚えて下さい。

>> 【メソッドのオーバーライド】に進む
>> Java入門トップに戻る