回答編集履歴

1

質問に直接答えていなかったので追記

2016/03/16 13:39

投稿

unau
unau

スコア2468

test CHANGED
@@ -7,3 +7,23 @@
7
7
 
8
8
 
9
9
  オーバーロードは、ある一つのメソッド名に対し、引数の数や型を違うものは違うメソッドとして扱われるというものです。大工に「働け」という際に釘と玄能を渡すと釘を打つし、カンナを渡すと木を削る、という感じでしょうか。
10
+
11
+
12
+
13
+ ---
14
+
15
+ 質問に答えていなかったので追記です。
16
+
17
+
18
+
19
+ ポリモーフィズムというのは、「同じメソッドにいろんな処理を持たせよう!」というよりは、それぞれのオブジェクトに対して同じメソッドを呼んでもオブジェクトってそれぞれさまざまなんだからそのオブジェクトに適したそれぞれの動きをするよね、という意味で「同じメソッドでもオブジェクトごとに違う処理が行われるようなオブジェクトで構成されている」という状態のことです。
20
+
21
+ オーバーライドはそういう状態を作り出す機構の一つではあると思います。
22
+
23
+
24
+
25
+ オーバーロードについては、通常のオブジェクトの場合にはポリモーフィズムとは違う気がしますが、演算子のオーバーロードとかはポリモーフィズムっぽいですね。
26
+
27
+
28
+
29
+ そのような機構がなくとも、あるいはあってもそれに乗らずに duck typing してても、それはポリモーフィズムと言えると思います。