応用情報技術者 2012年 春期 午前2 問45
問題文
オブジェクト指向における抽象クラスで、できないことはどれか。
選択肢
ア:インスタンスを生成すること(正解)
イ:サブクラスをもつこと
ウ:スーパクラスをもつこと
エ:属性をもつこと
オブジェクト指向における抽象クラスで、できないことはどれか【午前2 解説】
要点まとめ
- 結論:抽象クラスはインスタンスを生成できないため、正解はア: インスタンスを生成することです。
- 根拠:抽象クラスは設計上、共通の性質や振る舞いを定義し、具体的な実装はサブクラスに任せるため直接のインスタンス化を禁止します。
- 差がつくポイント:抽象クラスが持てる属性やスーパークラス、サブクラスの関係は可能ですが、インスタンス生成の可否を正確に理解しているかが重要です。
正解の理由
抽象クラスは「抽象メソッド」を含むことが多く、これらは具体的な実装がないため、抽象クラス自体からインスタンスを生成すると未完成の状態のオブジェクトができてしまいます。したがって、抽象クラスは直接インスタンス化できず、サブクラスで具体的な実装を行い、そのサブクラスのインスタンスを生成します。
一方、抽象クラスは属性を持つこともでき、スーパークラスやサブクラスの関係も通常のクラスと同様に持てます。
一方、抽象クラスは属性を持つこともでき、スーパークラスやサブクラスの関係も通常のクラスと同様に持てます。
よくある誤解
抽象クラスは「クラスの一種だからインスタンス化できる」と誤解されがちですが、抽象クラスはあくまで設計のためのテンプレートであり、直接のインスタンス化は禁止されています。
解法ステップ
- 抽象クラスの定義と役割を確認する。
- 抽象クラスが持てるもの(属性、スーパークラス、サブクラス)を理解する。
- インスタンス生成が可能かどうかを判断する。
- 選択肢を一つずつ検証し、できないことを特定する。
選択肢別の誤答解説
- ア: インスタンスを生成すること → 抽象クラスは直接インスタンス化できないため正解。
- イ: サブクラスをもつこと → 抽象クラスは継承されることが前提なので可能。
- ウ: スーパクラスをもつこと → 抽象クラスも他のクラスを継承できるため可能。
- エ: 属性をもつこと → 抽象クラスは属性を定義できるため可能。
補足コラム
抽象クラスはオブジェクト指向設計の重要な概念で、共通のインターフェースや基本的な処理をまとめる役割を持ちます。抽象メソッドを持つことで、サブクラスに必ず実装を強制でき、設計の一貫性を保ちます。インターフェースとの違いは、抽象クラスは属性や実装を持てる点にあります。
FAQ
Q: 抽象クラスはなぜインスタンス化できないのですか?
A: 抽象クラスは未完成のメソッド(抽象メソッド)を含むため、具体的な動作が定義されておらず、直接インスタンス化すると動作が不明確になるからです。
A: 抽象クラスは未完成のメソッド(抽象メソッド)を含むため、具体的な動作が定義されておらず、直接インスタンス化すると動作が不明確になるからです。
Q: 抽象クラスとインターフェースの違いは何ですか?
A: 抽象クラスは属性や実装を持てますが、インターフェースはメソッドの宣言のみで実装を持ちません。
A: 抽象クラスは属性や実装を持てますが、インターフェースはメソッドの宣言のみで実装を持ちません。
関連キーワード: 抽象クラス、インスタンス生成、オブジェクト指向、継承、抽象メソッド

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

