>> Java入門トップに戻る
Javaのメソッドのオーバーロード(多重定義)について説明します。
メソッドのオーバーロードとは同じ名前のメソッドを引数の型や数、順番などを変えて複数定義することです。
コンストラクタ作成のページでもオーバーロードについては少し説明しましたが、コンストラクタ以外の普通のメソッドでもオーバーロード可能です。
では、以下のコードを見てください。
1つ目は引数がなく、ただHelloと出力するだけのメソッド。
2つ目は引数があり、その引数の文字を出力するメソッド。
9行目では引数を指定せずにechoHelloメソッドを呼び出しているので、1つ目のechoHelloメソッドが呼ばれ、Helloと表示されます。
12行目では引数を指定してechoHelloメソッドが呼ばれてるので、2つ目のechoHelloメソッドが呼ばれ、引数に指定した文字列が表示されます。
このようにメソッドを同じ名前で、引数の数・型・順番を変えることによって複数定義することが出来ます。
引数の数が一緒でも、「型や順番」が異なればOKです。つまり、
呼び出す時の引数に、それぞれのメソッドに対応する型の値や変数を指定すれば、その型に応じたメソッドが呼ばれます。
メソッドのオーバーロードもよく使うのでしっかりと覚えて下さい。
>> 【メソッドのオーバーライド】に進む
>> 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入門トップに戻る