プロが教える店舗&オフィスのセキュリティ対策術

ポリモーフィズムについて、日常生活を使って、教えて下さい。
インターフェイスとの違いがよく分かりません。

A 回答 (4件)

ポリモーフィズムについて考えるとき、必然的に「静的結合」と「動的結合」の違いを明確に区別することが求められます。



たとえば、「サッポロ1番」の包装からしょうゆ味、みそ味、塩味それぞれのスープを取り出し、袋の中にいれた後、その日の気分でアトランダムにその中からいずれかのスープを使用するとします。(実際の工場での製造工程でも、麺などを作る途中までは一緒で、一番最後の方の梱包の所でのみ、無作為に抽出したもののうちの一つを・・、といった感じですね。)

そのようなことをJavaでも同様に実現しようとした時に、「ポリモーフィズム」の考え方が必要となってきます。最初の段階(コンパイル時)にはどのスープ(どの型のインスタンス)が使われるのか分からないが、実際に使用される時(実行時)になって初めて確定する、といった感じですね。

よって、厳密には「インターフェイス」を使用しなくても「ポリモーフィズム」を使用することは可能です。

「インターフェイス」というのは、たとえば「即席中華めん」インターフェイスを事前に作成しておけば、後でカレーラーメン味などを新商品として開発する際に、既存の麺や製造工程などはそのまま使用できて、再利用性や保守性に富むといった感じですね。


蛇足ですが、さっき、サンヨー食品の本家サイトに行ってみたら、チゲ風とか、とんこつラーメンもあるみたいですね。今度また買って食べてみよう、っと。
    • good
    • 0

多態性...


Javaを勉強される方で、混乱する要素の一つです。

ここであれこれ言っても理解するのは難しいと思うので、
http://www.nextindex.net/java/
を参考にしてみてはどうでしょうか?

最初は分かんなくても、粘り強く読んで下さい。
    • good
    • 0

ポリモルフィズムは「同じメソッドでも実際のオブジェクトの型によって振る舞いが異なる」という現象をさしており, インターフェースは「

ポリモルフィズムを実現するための機構 (の 1つ)」です. この 2つの「違いが分からない」というのは「動作」と「その動作を実現するための仕組み」が区別できないということなんだけど....
    • good
    • 0

恐ろしく適当かつ今ラーメン食べたいのでそいつで説明すると。



「サッポロ1番」クラスがあるとして、こいつを継承した

「サッポロ一番」しょうゆラーメンクラス
「サッポロ一番」みそラーメンクラス
「サッポロ一番」塩ラーメンクラス

というのを作る場合。

調味料と包装を変えるだけでラーメン「サッポロ一番」クラスから3つのラーメンを作れます。

という感じです。

細かいことはきっと説明上手な人が解説してくれるはず!
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!