平成29年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
V−17
オブジェクト指向言語Javaにおける継承と委譲に関する記述の
うち、最も不適切なものはどれか。

 @ 委譲とは継承関係にないクラスに共通部をくくりだし、
   そのクラスのオブジェクトを通して共通部を利用する
   プログラミング手法である。
 A 共通部を含むプログラムに対しては、共通部を基底
   クラスにくくりだし、基底クラスを継承することに
   よって冗長なプログラム記述を排除するべきである。
 B 継承することによって上位型のすべてのプログラム
   記述が下位型に存在することになる。
 C すべての上位型のプログラムが継承の対象となるため、
   クラス階層は注意して設計しなくてはならない。
 D 汎化関係にないクラスを下位型として定義することで
   重複する共通部分の排除を行うことは弊害が大きい
   ため、継承ではなく委譲を利用するべきである。



【正解】 B

@適切である。
 
委譲 (=デリゲーション) は、あるオブジェクトに依頼されたメッセージの処理を、
 他のオブジェクトに委ねることである。
A適切である。ただし、「
冗長なプログラム記述を排除するべきである」という
 表現が言いすぎの感があるが、最も不適切でもない。
B
継承 (=インヘリタンス) は、あるクラスAのフィールドやメソッドをクラスBが
 そのまま同様に利用できることである。
 上位型のプログラム記述が下位型に存在しないこともある。
C適切である。
D適切である。
 
汎化は、複数のクラスに共通する部分を一般化すること。
 また、汎化の逆の
特化は、抽象クラスから下位のクラスに特殊化すること。
 「
重複する共通部分の排除を行うことは弊害が大きい」とは言い切れないが
 最も不適切でもない。

EXCELのマクロのご相談なら  ファーストマクロ  



V−16 目次 V−18
ファーストマクロ TOPページ