抽象クラスとは?ちゅうしょうくらす
抽象クラスとは、それ自体ではインスタンスを作れず、サブクラスに実装させることを前提としたクラス。共通する属性や処理は親側にまとめ、派生ごとに中身の変わる部分だけを本体のない抽象メソッドとして宣言しておく。重複を排除しながら、違いを1か所に閉じ込めるための仕組みである。
最終更新:2026-10-06
この語が出る過去問を解く →背景
似た処理をクラスごとに書き写すと、仕様が変わるたびに全部を直すことになり、直し漏れが必ず出る。かといって共通部分を1つのクラスへ寄せると、今度は派生ごとの違いを吸収する分岐が肥大化する。共通は継承で共有し、違う部分は宣言だけ置いて実装をサブクラスへ委ねる、という切り分けがこの構造で、呼び出す側は親の型のまま扱えるので分岐そのものが不要になる。
具体例
抽象クラス「図形」に面積を返す抽象メソッドを置き、円・三角形・長方形の各サブクラスがそれぞれの式で実装する。JavaのInputStreamやAbstractListも同じ形で、共通の読み出し手順は親が持ち、実際にどこから読むかだけを派生クラスが決める。新しい図形や入力元を足しても、呼び出し側の分岐は増えない。
試験での引っ掛け
インタフェースとの区別が問われる。抽象クラスは実装済みメソッドやフィールドを持てるが多重継承は通常できず、インタフェースは実装を持たない代わりに複数を実装できるという対比で整理する。抽象メソッドを1つも持たなくても抽象クラスとして宣言できる一方、抽象メソッドを持つクラスは必ず抽象クラスになる、という向きの非対称も押さえておく。
関連用語
出た過去問
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問24(IPA)
オブジェクト指向における抽象クラスで、できないことはどれか。
正解:インスタンスを生成すること
要点:抽象クラスは直接インスタンス化できない
抽象クラスは、実装されていない操作を含み得る不完全なクラスで、共通の性質をまとめて継承させるために用意される。実体としての中身がそろっていないため、そこから直接インスタンスを生成することはできない。一方で属性を持つことも、他のクラスを継承することも、サブクラスに継承させることもできる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの4 開発技術 > 2. 設計 > (9) ソフトウェア設計手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。