次のUMLクラス図の説明に関する次の記述のうち,最も適切なものはどれか。
① 「TIFF画像」クラスと「JPEG画像」クラスの関係を,継承という。
② 「画像」クラスと「画像形式」クラスの関係を,集約という。
③ 「画像処理」クラスのインスタンスを削除すると,関連する「JPEG画像」クラスのインスタンスも削除される。
④ 「シャープ処理」クラスのインスタンスは,TIFF画像を読み込むことができない。
⑤ 「ぼかし処理」クラスは多重継承をしている。
答え
②
解説
① 「TIFF画像」クラスと「JPEG画像」クラスの関係を,継承という。
「TIFF画像」クラスと継承関係と言えるのは,「画像形式」クラスです。
② 「画像」クラスと「画像形式」クラスの関係を,集約という。
適切です。
③ 「画像処理」クラスのインスタンスを削除すると,関連する「JPEG画像」クラスのインスタンスも削除される。
「画像」クラスのインスタンスを削除すると,関連する「JPEG画像」クラスのインスタンスも削除されます(“コンポジション”と言います)が,継承関係の「画像処理」クラスのインスタンスが削除されても「JPEG画像」クラスのインスタンスは削除されません。
④ 「シャープ処理」クラスのインスタンスは,TIFF画像を読み込むことができない。
「画像」クラスを介して,読み込むことができます。
⑤ 「ぼかし処理」クラスは多重継承をしている。
多重継承は複数の親クラスを持つことですが,「ぼかし処理」クラスの親クラスは「画像処理」クラスのみのため,多重継承はしていません。