応用情報技術者試験 令和6年春 午前問45 解説付き過去問
問題
オブジェクト指向におけるクラス間の関係のうち、適切なものはどれか。
正解
解説
オブジェクト指向における「継承」は、あるクラス(スーパークラスまたは親クラス)が持つ属性や操作(メソッド)を、別のクラス(サブクラスまたは子クラス)が引き継ぐ仕組みである。これにより、既存の機能を再利用しつつ、サブクラス側で独自の振る舞いを追加・変更することができる。
- スーパークラスとサブクラスの関係
スーパークラスは共通の機能や属性を定義する一般的なクラスであり、サブクラスはそのスーパークラスを継承し、より具体的な振る舞いを表すクラスである。サブクラスはスーパークラスの属性や操作を引き継ぐことで、コードの再利用が可能となる。 - 操作の再定義(オーバーライド)
サブクラスは、スーパークラスで定義されている操作(メソッド)を、必要に応じて独自に再定義することができる。この再定義を「オーバーライド」と呼び、同じ名前の操作であっても、サブクラスで異なる処理を実装することが可能となる。これにより、多態性(ポリモーフィズム)を実現することができる。 - 他の選択肢との違い
- クラス間の関連は複数のクラス間で定義可能であり、2つのクラスに限定されるわけではない。
- サブクラスのインスタンスが操作を実行する際、その操作がスーパークラスで定義されていれば、サブクラスから直接継承して実行されるのであり、スーパークラスのインスタンスに依頼するわけではない。
- 集約(aggregation)は「部分-全体」の関係を表すが、クラスの属性や操作を共有することは意味していない。集約される部品オブジェクトは独立性を持ち、構造的な関係を表すのみである。