【Java】オーバーロードとは?使い方をサンプルコードで徹底解説!

オーバーロードとは同じメソッド名でパラメータのみが異なるメソッドを作成することをいいます。

オーバーロードを使うことで、1つのクラスに同じ名前のメソッドを複数定義することができ、1つのメソッド名を定義するだけで引数によって処理を切り替えれることができます。

今回はオーバーロードの使い方についてサンプルコードを使って徹底的に解説していきます。

目次

オーバーロードとは

オーバーロードとは同じメソッド名でパラメータのみが異なるメソッドを作成することをいいます。

オーバーロードの書き方

オーバーロードの構文は下記となります。

メソッド名を同じにして、引数を変更することでメソッドAの処理は処理内容1から処理内容2にオーバーロードされます。

オーバーロードの注意点

オーバーロードは、パラメータが異なるメソッドを作成する為、引数の型と個数が全く同じである同名のメソッドは2つ以上定義できませんので注意してください。

また、オーバーロードさせるときは、メソッドの戻り値の型、可視性(publicやprivateなど)、「throws」節を一致させる必要があります。
いずれかが異なっていると、コンパイルエラーとなります。

オーバーロードを使ったサンプルコード

オーバーロードを使ったサンプルコードを見てみましょう。
パラメータを書き換えた場合やパラメータの個数を変えてオーバーロードを行っています。

パラメータを書き換えた場合

OverLoad.java

Main.java

出力結果

byte型: 100
sort型: 81
int型: 64
long型: 1156

サンプルコードでは、受け取った数を2倍にして返すメソッドを持つクラスを定義しています。
また、受け取る整数の型を特定しないように、4つのメソッドを用意しています。

パラメータの型を変えるだけでなく、パラメータの数を変える場合もあります。

パラメータがない場合

パラメータがない場合を見てみます。

OverLoad.java

Main.java

出力結果

こんにちは

パラメータが1つの場合

パラメータを1つに設定した場合を見てみます。

OverLoad.java

Main.java

出力結果

木村拓哉さんこんにちは

パラメータが2つの場合

パラメータを2つに設定した場合を見てみます。

OverLoad.java

Main.java

出力結果

北海道からきた木村拓哉さんこんにちは

なお、オーバーロードはメソッドだけでなく、コンストラクタでも利用可能です。

今回のポイント

オーバーロードでパラメータのみが異なる同じメソッド名を作成

⚫︎ オーバーロードで同じメソッド名でパラメータのみが異なるメソッドを作成することができる

⚫︎ オーバーロードは、引数の型と個数が全く同じである同名のメソッドは2つ以上定義できない

⚫︎ オーバーロードさせるときは、メソッドの戻り値の型、publicやprivate、「throws」節を一致させる必要があり、いずれかが異なっていると、コンパイルエラーとなる

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報