1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オーバーライドとオーバーロードの違いが一目でわかる絵を描いた

Posted at

よくオーバーライドとオーバーロードを間違えます。
名前は似ているが、全然別の概念ですね。
けれど何度定義を読み返しても、混同してしまいます。
あまりにも間違えるので、絵を描きました。
ink-image.png

オーバーライド(override)

オブジェクト指向プログラミングにおいてオーバーライド (override) とは、スーパークラスで定義されたメソッドをサブクラスで定義し直し、動作を上書き(変更)することである。

つまり、オーバーライドする目的は、継承したサブクラスにおいて、スーパークラスのメソッドに処理を追加することです。
メソッドの型、及び引数の数や型は基本的には変えられません。

オーバーロード(overload)

多重定義 (たじゅうていぎ) あるいは オーバーロード (英: overload) とは、プログラミング言語において同一の名前(シンボル)を持つ関数あるいはメソッドおよび同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。

こちらは、基本的には同一クラスでの話。
メソッド名は同じだが、メソッドの型や引数の数や型も変えるし、処理も変えるという場合に使う。
目的としては、あるメソッドでインプットの種類によって処理や戻り値も変えるが、
メソッドとしては同じことなんだよなあ……という場合に使う。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?