0
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 3 years have passed since last update.

【オブジェクト指向】ダックタイピング/ポリモーフィズムを簡単にまとめてみた

Posted at

ダックタイピングとは

ダックタイピングについて、ある有名な格言があります。

"If it walks like a duck and quacks like a duck, it must be a duck"
(もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである)

これをオブジェクト指向的に言い直すと、、、
「誰か」ではなく「何をするか」によってオブジェクトを見分けるということです。
どのクラスに属しているオブジェクトなのかということは意識しないです。

ポリモーフィズムとは

単純な言葉の意味は「多態性」「多様性」という意味です。「同じメソッド名が異なる複数のオブジェクトに属す」ということです。メソッド名が同じでも、オブジェクトによって処理結果が変化します。

まずは以下のコードを見てください。

str = 'test'
puts str.slice(1)
# => "e"

arr = [1, 2, 3]
puts arr.slice(1)
# => 2

同じメソッド(slice)ですが処理しているオブジェクトは違います。
メソッド側からすると文字列でも配列でも変わらず処理を行える、これこそが「ダックタイピング/ポリモーフィズム」ということです!

0
0
0

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
0
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?