JavaA2Z

KAB-studio > プログラミング > JavaA2Z > オーバーロードとは

オーバーロード

日本語 複数読み込み
英語 overload
ふりがな おーばーろーど
フリガナ オーバーロード

解説

同じメソッド名・別引数メソッドを作ること。もしくはそのメソッド
メソッド引数さえ異なれば同じクラスの中に同名のメソッドをいくつでも作ることができる。これらのメソッドは「オーバーロードされたメソッド」と呼ばれる。
オーバーロードすることで、呼び出す側は「渡す」を変えるだけで自動的に適切なメソッドが呼ばれるため、便利な機能のひとつと言える。
ただし、それ故に「どのメソッドが呼ばれるのかわかりにくい」という問題点もある。逆に言うと「どのメソッドが呼ばれてもよい」よう、オーバーロードされたメソッドは、どれも似たような結果を返すことが求められる。
オーバーロードの例としてStringBufferクラスのappend()メソッドがある。このメソッドは多くのプリミティブ型Objectクラスに対してオーバーロードされているが、結果はすべて「文字列化し連結する」ことである。このように、オーバーロードされたメソッドが共通の結果を返すのが理想である。

オーバーライド」と名称が似ているが、全く異なるもののため注意すること。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // J2SEのオーバーロードの例。
        StringBuffer strbuf = new StringBuffer();
        // append()メソッドはintやbooleanなどで
        // オーバーロードしています。
        strbuf.append( 100 );
        strbuf.append( true );
        System.out.println( strbuf.toString() );
        // 100true

        // 自分で作ったオーバーロードされたメソッドを
        // 呼び出してみます。
        Sample sample = new Sample();
        sample.print( 200 );
        // print( int ) : 200
        sample.print( "かきくけこ" );
        // print( String ) : かきくけこ
    }

    /**
    *   int型が渡された場合に呼ばれます。
    */
    private void print( int i )
    {
        System.out.println( "print( int ) : " + i );
    }

    /**
    *   String型が渡された場合に呼ばれます。
    */
    private void print( String string )
    {
        System.out.println( "print( String ) : " + string );
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // J2SEのオーバーロードの例。
        StringBuffer strbuf = new StringBuffer();
        // append()メソッドはintやbooleanなどで
        // オーバーロードしています。
        strbuf.append( 100 );
        strbuf.append( true );
        System.out.println( strbuf.toString() );
        // 100true

        // 自分で作ったオーバーロードされたメソッドを
        // 呼び出してみます。
        Sample sample = new Sample();
        sample.print( 200 );
        // print( int ) : 200
        sample.print( "かきくけこ" );
        // print( String ) : かきくけこ
    }

    /**
    *   int型が渡された場合に呼ばれます。
    */
    private void print( int i )
    {
        System.out.println( "print( int ) : " + i );
    }

    /**
    *   String型が渡された場合に呼ばれます。
    */
    private void print( String string )
    {
        System.out.println( "print( String ) : " + string );
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/03/14
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。