【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受験を目指して学習中
学習中で学んだポイントを以降も記載していきます。
以下の文献を参考に学習しております。