平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【java】メソッドのオーバーライド、オーバーロードの違い(2)

今回のテーマ

前回はオーバーライドについて記載しましたが
今回はオーバーロードについて説明します。

■前回オーバーライドの記事

【java】メソッドのオーバーライド、オーバーロードの違い(1) - 平凡エンジニアによる平凡ブログ

オーバーロードとは

オーバーロードとは
「同じクラスの中に同じ名称のメソッドを定義すること」です。
メソッドだけでなくコンストラクトにも適用可能です。

引数の数や型だけを違うもので処理内容が同じものに対して
同様のメソッド名で定義することができます。

例えば数値を計算する処理に「calc」という名前をつけたとして
受け渡す引数や型を変えるだけで別の名称を考えるのは
開発側としては苦労します。

かといって、関係のない適当な名称をつけてしまうと
メンテするときに大変です。

オーバーロード実例

実際の使用方法をみる。
Subclassというクラスにcalcというメソッドの引数を変更して
オーバーロードして定義しています。

public class Subclass { 
    public int calc(){      
        System.out.println("");
    }
    
    public int calc(double a, int b){
        System.out.println("");
    }
}

オーバーロードの条件

・引数の数、型、順番が異なっている
・アクセス修飾子・戻り値は同じでも違っていても関係なし

まとめ

前回と合わせてオーバーライドとオーバロードの特徴は
記載したが、改めて以下の通り整理する。

  • オーバーライド
    • 別のクラスで同じメソッド名で別の処理を定義すること
  • オーバーロード
    • 同じクラスで同じメソッド名で引数だけ変更して定義すること

同じメソッド名(もしくはコントラスト)を定義するという意味で
混同しやすいので役割が違うということを認識しておきたい。

現在1Z0-818受験を目指して学習中
学習中で学んだポイントを以降も記載していきます。
以下の文献を参考に学習しております。

オラクル認定資格教科書 Javaプログラマ Bronze SE(試験番号1Z0-818)