Javaにおけるメソッドのオーバーロード(静的ポリモーフィズム)の基本と実装例
メソッドのオーバーロードは、静的ポリモーフィズム(静的多態性)の一種です。Javaでは、同じ名前を持つ複数のメソッドを、引数の数や型が異なる形で定義することができます。これにより、呼び出し側は同じメソッド名を使いながら、渡す引数に応じて適切な処理が自動的に選択されます。
以下に、実際のサンプルプログラムを示します。
サンプルコード
public class Tester {
public static void main(String args[]) {
Tester tester = new Tester();
System.out.println(tester.add(1, 2));
System.out.println(tester.add(1, 2, 3));
}
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}実行結果
3 6
解説
この例では、add() メソッドを2つ定義しています。ひとつは int型の引数を2つ 受け取るバージョン、もうひとつは int型の引数を3つ 受け取るバージョンです。
呼び出し時には、渡された引数の数に応じて、コンパイラが自動的に適切なメソッドを選択します。そのため、add(1, 2) では2つの値の合計である「3」が、add(1, 2, 3) では3つの値の合計である「6」が出力されます。
このように、同じメソッド名でも引数の構成が異なれば別のメソッドとして定義できる仕組みを、メソッドのオーバーロード(または静的ポリモーフィズム)と呼びます。
オーバーロードのポイント
- メソッド名は同一でも、引数の数・型・順序が異なる必要があります。
- 戻り値の型だけが異なる場合はオーバーロードとして認識されません。
- 可読性や利便性を高めるために、類似した処理をまとめる際によく使われます。
-
Java 9のdestroyForcibly()メソッドとは?プロセスを強制終了する方法を解説
destroyForcibly() メソッドは、実行中のプロセスを強制的に終了(キル)するために使用されます。このメソッドは、プロセスが正常に終了しない場合や、フリーズ(応答停止)してしまった場合に特に役立ちます。 例えば、destroyForcibly() を呼び出した後でも isAlive() メソッドが true を返すことがあります。これは、OSレベルでの終了処理が完了するまでに時間差があるためです。また、destroyForcibly() は終了要求が正常に受け付けられた場合は true を返し、そうでない場合は false を返します。 構文 boolean destroyForc
-
Javaにおけるメソッドオーバーロードの3つの実現方法とサンプルコード
Javaのメソッドオーバーロード(オーバーローディング)とは、同じクラス内に同名のメソッドを複数定義できる機能です。引数の構成が異なっていれば、同じ名前のメソッドを用途に応じて使い分けることができ、コードの可読性と再利用性が向上します。メソッドオーバーロードは、主に以下の3つの方法で実現できます。メソッドの引数の数を変更する引数のデータ型の順序を変更する引数のデータ型そのものを変更する注意点:戻り値の型だけではオーバーロードできない戻り値の型だけが異なり、引数の構成がまったく同じメソッドを2つ定義することはできません。コンパイルエラーになるため、必ず引数に違いを持たせる必要があります。サンプル