【オブジェクト指向】ダックタイピング/ポリモーフィズムを簡単にまとめてみた
ダックタイピングとは
ダックタイピングについて、ある有名な格言があります。
"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)ですが処理しているオブジェクトは違います。
メソッド側からすると文字列でも配列でも変わらず処理を行える、これこそが「ダックタイピング/ポリモーフィズム」
ということです!
Author And Source
この問題について(【オブジェクト指向】ダックタイピング/ポリモーフィズムを簡単にまとめてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/ren0826jam/items/31ba72e3aa141ea99e63著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .