オブジェクト指向におけるクラス間の関係|科目A-1(応用情報技術者) 令和6年 春期午前試験 問45
出典:令和6年春期 午前 問45
分野:システム開発技術 / 設計
オブジェクト指向におけるクラス間の関係のうち,適切なものはどれか。
- ア:クラス間の関連は,二つのクラス間でだけ定義できる。
- イ:サブクラスではスーパークラスの操作を再定義することができる。
- ウ:サブクラスのインスタンスが,スーパークラスで定義されている操作を実行するときは,スーパークラスのインスタンスに操作を依頼する。
- エ:二つのクラスに集約の関係があるときには,集約オブジェクトは部品オブジェクトと,属性及び操作を共有する。
TSUNAGARU-ADVICE
まず押さえたいこと
オブジェクト指向の継承では、サブクラスはスーパークラスの属性や操作を引き継ぎます。その上で、スーパークラスで定義された操作をサブクラス側で再定義することができるのが特徴です。これはオーバーライドと呼ばれます。
迷ったときの判断軸
関連は必ず二つのクラスだけに限定されるわけではありません。また、サブクラスが継承した操作を実行するときに、毎回スーパークラスのインスタンスへ処理を依頼する必要もありません。集約は全体と部分の関係を表しますが、属性や操作を共有する関係ではない点にも注意しましょう。
科目Bにつなげるために
特にプロフェッショナルデジタルスキル(システム)試験合格を目指す方は、クラス間の関係を継承、関連、集約、コンポジションに分けて整理しましょう。オーバーライドやポリモーフィズムと結び付けて理解すると、オブジェクト指向設計の問題にも対応しやすくなります。
オブジェクト指向では、あるクラスを基にして新しいクラスを作ることを継承といいます。元になるクラスをスーパークラス、継承して作られるクラスをサブクラスと呼びます。
サブクラスでは、スーパークラスから継承した操作を、そのサブクラスに合うように再定義することができます。これをオーバーライドといいます。
したがって、イが適切です。
❌他選択肢が誤りの理由ア:クラス間の関連は,二つのクラス間でだけ定義できる。
⇒関連は必ず二つのクラスだけに限定されるわけではありません。複数のクラスが関係する多項関連も定義できます。
ウ:サブクラスのインスタンスが,スーパークラスで定義されている操作を実行するときは,スーパークラスのインスタンスに操作を依頼する。
⇒サブクラスはスーパークラスの操作を継承しているため、サブクラス自身のインスタンスがその操作を実行できます。スーパークラスの別のインスタンスに処理を依頼するわけではありません。
エ:二つのクラスに集約の関係があるときには,集約オブジェクトは部品オブジェクトと,属性及び操作を共有する。
⇒集約は、「全体」と「部分」の関係を表します。集約オブジェクトと部品オブジェクトが属性や操作を共有することを意味するものではありません。