スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.1790
オブジェクト指向プログラミングにおいて、既存のクラスの特性(属性やメソッド)を引き継ぎつつ、新たな特性を追加または変更して新しいクラスを定義する仕組みを指す用語はどれか。

【正解の解説】

継承

これはまさに「親の遺伝子を受け継いだ子ども」のようなものです。例えば、「くるま」という基本設計図(親クラス)をベースにして、それを引き継ぎながら「空を飛ぶ機能」を追加した「飛行車」という新しい設計図(子クラス)をゼロから書かずに効率よく作れる仕組みが継承です。プログラミングの二度手間を防ぎ、開発スピードを爆発的に上げるために欠かせない重要機能です。

スポンサーリンク

【その他の選択肢の解説】

多態性

初心者であるほど「継承」と混同しやすい用語です。継承が「血を受け継いで機能を増やすこと」であるのに対し、多態性は「犬も猫も『鳴け』という同じ命令でそれぞれの声で鳴くように、使い手を迷わせない仕組み」を指します。どちらもオブジェクト指向の重要用語ですが、コードを流用・拡張するのが継承、呼び出し方を統一するのが多態性と明確に区別して覚えましょう。

カプセル化

これは薬のカプセルのように、苦い中身が外に漏れないように隠すイメージです。オブジェクト指向において、データが勝手に書き換えられてバグが起きるのを防ぐために利用されます。機能を引き継ぐ「継承」とは異なり、こちらは「データを安全に保護する」ことが目的であるため、目的とアプローチのベクトルが全く異なる別の概念となります。

抽象化

複雑な現実世界をプログラムで扱いやすくするために、細かい違いを無視して「共通の枠組み」を作る作業を指します。例えば、犬や猫を「動物」という大まかな枠組みで捉えるのが抽象化です。特性を引き継ぐ「継承」の前提として使われることが多いですが、機能を引き継ぐ仕組みそのものを指す言葉ではないため、本問の正解からは外れます。