継承(インヘリタンス)とは?
継承(インヘリタンス)とは、既存クラスの属性と操作を引き継いで新しいクラスを定義する仕組みで、共通部分を上位クラスにまとめ、差分だけを下位クラスに書く設計手法である。上位を汎化(スーパクラス)、下位を特化(サブクラス)と呼び、UMLのクラス図では白抜き三角の矢印で表す。下位クラスは引き継いだ操作を同じ名前で置き換えるオーバライドができ、これが多相性の土台になる。C++は複数の親を持つ多重継承を許すが、Javaはクラスの多重継承を禁じてインタフェースの多重実装で代替する。設計上は「サブクラスは常にスーパクラスとして扱える」ことを崩さないこと(リスコフの置換原則)が条件で、これを満たせない再利用は継承ではなく委譲(コンポジション)で組むのが定石とされる。
けいしょう
継承(インヘリタンス)はどういう意味?
既存クラスの属性と操作を引き継いで新しいクラスを定義する仕組みで、共通部分を上位クラスにまとめ、差分だけを下位クラスに書く設計手法である。上位を汎化(スーパクラス)、下位を特化(サブクラス)と呼び、UMLのクラス図では白抜き三角の矢印で表す。下位クラスは引き継いだ操作を同じ名前で置き換えるオーバライドができ、これが多相性の土台になる。C++は複数の親を持つ多重継承を許すが、Javaはクラスの多重継承を禁じてインタフェースの多重実装で代替する。設計上は「サブクラスは常にスーパクラスとして扱える」ことを崩さないこと(リスコフの置換原則)が条件で、これを満たせない再利用は継承ではなく委譲(コンポジション)で組むのが定石とされる。
継承(インヘリタンス)の具体例は?
AndroidアプリはGoogleが提供するActivityクラスを継承して画面クラスを作り、onCreateなど親が用意した操作を必要な分だけ書き換える。Javaでは全てのクラスがjava.lang.Objectを継承し、equalsやtoStringを既定で持つ。
継承(インヘリタンス)は試験でどう引っ掛けられる?
継承(is-a)と委譲・コンポジション(has-a)の取り違えが定番。再利用したいだけの相手を継承すると親の変更が子に波及する。オーバライド(同じ引数で置き換え)とオーバロード(引数の違う同名操作の多重定義)の混同、多重継承で同じ属性を二重に引き継ぐ菱形継承の問題も問われる。汎化と集約・コンポジションはUMLの記号が別物である点にも注意。
継承(インヘリタンス)と関連する用語は?
最終更新:2026-08-29/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。