staff1オブジェクトの継承インヘリタンス(継承)とは、親のクラス(オブジェクト)から子のクラス(オブジェクト)へ、性質(プロパティやメソッド)が引き継がれる仕組みを指します。現実世界の話に例えるならば、親の性格(=プロパティ)や行動(=メソッド)が子どもに引き継がれ、親子が似ることを想像していただければ分かりやすいでしょう。これをプログラミングで表現したものがインヘリタンス(継承)です。それでは、この仕組みがプログラミングにおいてどのような効果を生むのか解説していきましょう。「親から子へ引き継がれる仕組み」と先ほど述べましたが、実際にオブジェクト指向プログラミングで使用する設計モデルに似せて解説します。現実実世界に花子さんという学生がいたとします。この花子さんを具体的なオブジェクトとします。花子さんは学生なので、生徒クラスを継承しています。生徒である花子さんは、学校へ通い、成績も付いてまわります。具体的な花子さんという人物は、「生徒」という社会的な役割を持った人物ですので、生徒クラスに分類しました。花子さんは人間ですので、挨拶をしたり、食事もします。人間であれば誰もが持っている性質を人間クラスから継承し、花子さんを定義しました。継承がなぜ便利なのかこのように、継承を使うことでクラス単位でのプロパティやメソッドの定義が可能になります。花子さんや太郎くんといった個別具体的なオブジェクトを生成する際に、人間や生徒といった共通の性質を「人間クラス」や「生徒クラス」としてそれぞれまとめておけば良いのです。これにより、プログラミングを実装する段階でいちいち共通のプロパティやメソッドを書く手間が省けます。素早く思い通りのコードを書くことができるのです。何かの理由により生徒クラスのプロパティやメソッドを変更しなければならない時に、生徒クラスの特定のプロパティを変更するだけで、花子さんや太郎くんが引き継いだ性質や行動も自動的に変更されます。一箇所の変更だけでオブジェクト全体へ影響を与えることができますので、プログラミングの修正がより楽になるというメリットがあります。さまざまな情報をクラス(オブジェクト)にまとめ上げることで、この他にも様々なメリットが存在します。今回花子さんを「具体的なオブジェクト」としましたが、反対語は「抽象的なオブジェクト」であり、この場合は「人間クラス」や「生徒クラス」が抽象的なオブジェクトに該当します。オブジェクト指向でプログラミングをするということは、より抽象的な物事から整理しつつ、最終的には現実に即した個別具体的なオブジェクトを生成するということなのです。第1回で記述した「抽象的な事象から具体的な事象を定義し、モノを書き表す方法論」とは、この「具体的なオブジェクトの生成」についてを指していたのです。オブジェクト指向全5回のまとめオブジェクト指向の3大性質と言わる「カプセル化」「ポルモルフィズム(多態性)」「インヘリタンス(継承)」について、非常にざっくりとした説明でしたが、オブジェクト指向プログラミングにおけるオブジェクトの性質を少しでもご理解いただければ幸いです。私達が普段目にしているモノは、そのモノを見る人によって「何であるか」が異なります。人が現実世界を捉える認識をベースに置いて作られたオブジェクト指向ですが、第2回で記述した「プログラミング言語の数だけオブジェクトの性質が異なる」という点は、それだけ人間の認識が多様であるということに他なりません。オブジェクト指向設計におけるクラス設計も、設計する人が何に重きを置くかでクラスの構成も大きく変わります。クラス設計、オブジェクト設計がしっかり出来ているかどうかで、システム運用時の成功もしくは失敗が決まる場合が多いです。オブジェクト指向とは、プログラミングにおいて非常に重要な概念であると同時に、とても奥深い世界だということを感じ取っていただければ幸いです。コメントをキャンセルコメントを投稿するにはログインしてください。Reserved.運営会社|プライバシーポリシ。