Javaちょこっとリファレンス
HOME > オーバーロード

オーバーロード

オーバーロードは、メソッド名は同じでも引き数が異なるメソッドを複数定義することです。

受け取る引き数が異なるけど同じ処理を行うメソッドを作成する場合などに役立ちます。


【オーバーロードについて】
 ・「メソッド名」「戻り値」が同じで「引き数」が異なるものがオーバーロードとなる。
 ・引き数は、型、個数、並び順のうち1つでも異なればオーバーロードになる。
 ・throws句は異なってもオーバーロードにはならない。
 ・アクセス修飾子は異なってもオーバーロードにはならない。
 ・戻り値の型のみ異なるメソッドはオーバーロードとはならない。
  (コンパイルエラーとなります。)

サンプルソース

例)オーバーロードサンプル

OverLoadSample.java
//★オーバーロードサンプルクラス
public class OverLoadSample {

    //メソッド1
    public void hoge(){
        System.out.println("hoge-None");
    }

    //メソッド2
    public void hoge(String a){
        System.out.println("hoge-String");
    }

    //メソッド3
    public void hoge(String a, int i){
        System.out.println("hoge-StringInt");
    }

    //メソッド4
    public void hoge(int i, String a){
        System.out.println("hoge-intString");
    }

    //throws句が異なってもオーバーロードにはならない(エラーになる)
    //public void hoge() throws Exception{
    //    System.out.println("hoge");
    //}

    //アクセス修飾子が異なってもオーバーロードにはならない(エラーになる)
    //private void hoge(){
    //    System.out.println("hoge");
    //}

}
Test.java
//★実行用クラス
public class Test {

    public static void main(String[] args) throws Exception{

        OverLoadSample ols = new OverLoadSample();
        ols.hoge();
        ols.hoge("AAA");
        ols.hoge("AAA", 123);
        ols.hoge(123, "AAA");
    }
}

実行結果

コマンドプロンプト
C:\>java Test hoge-None hoge-String hoge-StringInt hoge-intString

一見同じ「hoge」メソッドを呼んでいるように見えますが、オーバーロードにより違うメソッドが呼ばれている事がわかります。

このエントリーをはてなブックマークに追加

Java基本カテゴリ

HOMEへ戻る TOPへ戻る