HOME»応用情報技術者試験掲示板»平成22年春期午後問8
投稿する

平成22年春期午後問8 [5786]

 s12345さん(No.1) 
https://www.ap-siken.com/kakomon/22_haru/pm08.html

設問1についてどなたかご教授いただけますでしょうか。

①:「b:金額問合せ」とありますが、こちら切符クラスは抽象クラスのため、「金額問合せ」も抽象メソッドだと思っております。そうすると、乗車券クラスや急行券クラスにも「金額問合せ」の定義があることが正しいと思うのですが、こちら認識通りでしょうか。(当問題のUMLが一部省略をしているという認識です)

②:多様性についてですが、①の認識に誤りがない場合、「b:金額問合せ」も多様性をもつメッセージに該当する操作という認識でよろしいのでしょうか。
2025.04.14 21:49
 s12345さん(No.2) 
> こちら切符クラスは抽象クラスのため、「金額問合せ」も抽象メソッドだと思っております。

こちら説明に不備がございました。「金額問合せ」は、
・乗車券の場合と特急券の場合で、処理内容が異なる(特急券の場合は列車も料金換計算に必要なため)
と認識しており、継承先の"乗車券クラス"と"急行券クラス"では振る舞いが異なる
=> 切符クラスの金額問合せは抽象メソッドであり、継承先のクラスでも定義が必要(オーバーライド)
という考えから、①と②の質問をさせていただきました。
2025.04.14 21:59
jjon-comさん(No.3) 
AP プラチナマイスター
応用情報 平成22年 春期 午後 問8
https://www.ap-siken.com/kakomon/22_haru/pm08.html

> 「金額問合せ」は、乗車券の場合と特急券の場合で、処理内容が異なる

いいえ、同じ処理内容です。切符クラスにおける 金額問合せ()という具象メソッドがそれを担っています。
〔前提〕
・乗車券は(略),金額(運賃)が決まる。
・急行券は(略),金額(料金)が決まる。
〔発売時〕
・(略),金額(運賃又は料金)を算出し,表示する。

図2のクラス図におけるスーパークラス"切符"とそのサブクラス"乗車券"及び"急行券"では,共通の属性をスーパークラスに,サブクラス個別の属性を各サブクラスにもたせている。ただし,属性"運賃"と"料金"については,個別に残しながら,共通の属性"金額"を追加した。
と問題文で説明されています。

つまり、
乗車券インスタンスに対しては 運賃問合せ()メソッド、
急行券インスタンスに対しては 料金問合せ()メソッド、
のように異なるメソッドにしたくなかったわけです。

ですから、
乗車券インスタンスの場合は、乗車券クラスの"運賃"属性 と 継承した切符クラスの"金額"属性に同じ値を、
急行券インスタンスの場合は、急行券クラスの"料金"属性 と 継承した切符クラスの"金額"属性に同じ値を、
設定することで、

金額問合せ()メソッドを呼び出せば、乗車券の場合は運賃が、急行券の場合は料金が、参照できるように設計したわけです。
2025.04.15 00:31
 s12345さん(No.4) 
jjon-comさま

ご回答いただきありがとうございます。

> ただし,属性"運賃"と"料金"については,個別に残しながら,共通の属性"金額"を追加した。

こちら見落としておりました。
ご説明が分かりやすく非常にためになりました!
またご縁がありましたら、どうぞよろしくお願いいたします。
2025.04.15 11:37
返信投稿用フォームスパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop