staff1オブジェクトによって振る舞いは異なるポルモルフィズム(多態性)とは、同じ名前のメソッドを呼び出しても、オブジェクトによって振る舞いが異なることを指します。聞き慣れない言葉かもしれませんが、まずは以下の図を見てみましょう。先生の「特技を教えて下さい」という質問に対して、太郎くんは「バスケです」と回答し、花子さんは「ピアノです」と回答しています。先生の質問をメソッドの呼び出しと捉えてみると、オブジェクトである太郎くんと花子さんの振る舞いが異なることが分かります。これをポルモルフィズム(多態性)と呼びます。オブジェクト指向に関する書籍にも同じようなことが書かれているかもしれません。犬に鳴けと命令すれば「ワン」、猫に鳴けと命令すれば「ニャア」と鳴きます。いった例え話が書かれているはずです。このオブジェクト指向におけるポルモルフィズムという概念は、プログラミング史において画期的な登場でした。ポルモルフィズム(多態性)がなぜ重要なのか初期のプログラミング言語において、オブジェクトへの命令は書き表すことができないものでした。非オブジェクティブなC言語で上記の振る舞いを表現するためには、「太郎くんはバスケをして下さい」「花子さんはピアノを弾いてください」とそれぞれ長々とコードを記述する必要があったのです。C言語の場合は機能を表すものをメソッドではなく関数と呼びますが、長い関数をいくつも定義しなければなりませんでした。太郎くんがクラスに3人いたら、さぁ大変です。それぞれの太郎くんに番号を振り、太郎くん1太郎くん2太郎くん3と定義しなければなりません。3人の太郎くんの特技はそれぞれ異なります。太郎くん1はサッカー、太郎くん2はプログラミング、太郎くん3はバスケが得意だったらどうなるでしょう。「太郎くん1はサッカーをしてください」「太郎くん2はプログラミングをしてください」「太郎くん3はバスケをしてください」と、それぞれに命令を発行しないといけません。非常に手間がかかりますね。大規模なシステム開発の現場では、多くのプログラマがソースをプログラミングします。それぞれのプログラマが上記のような長々と記述されたコードを用いるとどうなるでしょうか。「太郎くん2はバスケをしてください」と、存在しない命令を記述してしまうプログラマもいるかもしれません。命令を重複して記述してしまうプログラマもいるかもしれません。このように、メソッド名、関数名が長くなればなるほど、プログラムが正しく動かない致命的なミスが起こる可能性が高くなるのです。オブジェクト指向のポルモルフィズムの考えが生まれてからはどうでしょう。(太郎くんの)「特技は?」と振る舞いを促すだけで事が足りるようになりました。これがプログラミング史においてポルモルフィズムが画期的な登場とされる理由です。まとめポルモルフィズムとは、同じ名前のメソッド(命令)を与えても、オブジェクトによって振る舞いが異なることを意味します。これは「プログラムコードをシンプルに記述することで内容を整理する」というオブジェクト指向の性質であると捉えてください。それでは次回インヘリタンス(継承)について解説します。コメントをキャンセルコメントを投稿するにはログインしてください。Reserved.運営会社|プライバシーポリシ。