HOME»基本情報技術者試験掲示板»【緊急】Javaわかるかた!!
投稿する

【緊急】Javaわかるかた!! [4018]

 名無しさん(No.1) 
下記urlのjava問題。
gに関して。

メソッドmapはクラスDiscountTableのものです。
一方、選択肢内ではdiscountTiers.map()となっていますが、クラスTierTablの中ではまだmapはabstractで、クラスTierTableのなかで定義されてる訳でもありません。
なぜdiscountTiers.map()は使えるのですか??????????
(DiscountTableの中のTableは使えるわけがないですし)




https://www.fe-siken.com/s/kakomon/29_haru/pm11.html
2022.03.11 17:24
nsさん(No.2) 
FE シルバーマイスター
TierTableクラスは抽象クラスなので、TierTableクラス自体のインスタンスは作成できません。discountTiers変数にはTierTableクラスを継承した下位クラスのインスタンスが入るはずです。
TierTableクラスのmapメソッドはabstract宣言されているので、これを継承した下位クラスではmapメソッドを実装することが必須になります。
よって、discountTiers変数にどんなインスタンスが入っていても、そのインスタンスのmapメソッドをdiscountTiers.mapの形で呼び出すことができます。

Javaはあまり触れたことがないので、間違っていたらすみません。
2022.03.11 22:28
 名無しさん(No.3) 
メソッドmapはabstractだからどこかで定義しないと使えないはずですが(TireTable型の変数作ってもmapは使えないのでは)。

プログラム6の2行目は
「TireTable DiscountTable」でなく
「DiscountTable」だと思ったのですがなぜ違うのでしょうか?
2022.03.12 11:49
nsさん(No.4) 
FE シルバーマイスター
>メソッドmapはabstractだからどこかで定義しないと使えないはずですが(TireTable型の変数作ってもmapは使えないのでは)。
mapメソッドはTierTableクラスを継承した下位クラスで定義されます。abstract宣言なので、下位クラスで定義しなかった場合コンパイルエラーになるはずです。
また、No2でも書いたようにTierTableクラスは抽象クラスなので、TierTable型の変数は作れません。discountTableに代入されるのはTierTableを継承した下位クラス型の変数になります。
抽象クラスや抽象メソッドが理解できていないように見受けられるので、もう一度学習されるといいと思います。

>プログラム6の2行目は
>「TireTable DiscountTable」でなく
>「DiscountTable」だと思ったのですがなぜ違うのでしょうか?
「private final TierTable discountTable」ではなく「private final DiscountTable discountTiers」とするべきという意味でしょうか。
すみませんが、これは私も分かりません。
2022.03.12 14:44
 名無しさん(No.5) 
ちょっと全体的に言っている意味が分かりません。説明してる部分も質問してる所じゃないです。ありがとうございました。
どなたかわかるかたいてませんか???
2022.03.12 15:50
 名無しさん(No.6) 
>>mapメソッドはTierTableクラスを継承した下位クラスで定義されます。abstract宣言なので、下位クラスで定義しなかった場合コンパイルエラーになるはずです。
→それは分かっていますよ。だから下位クラスのクラスTiretable内にメソッドmapが定義されてないじゃないですか  なんでですか?
って質問してるのですよ。
私が質問してる内容をそのまま同じ言葉で書いてるだけじゃないですか。
2022.03.12 16:37
 名無しさん(No.7) 
他の方へ。
メソッドmapはabstractだからどこかで定義しないと使えないはずですが(TireTable型の変数作ってもmapは使えないのでは)。

プログラム6の2行目は
「TireTable?DiscountTable」でなく
「DiscountTable」だと思ったのですがなぜ違うのでしょうか?
2022.03.12 16:42
さん(No.8) 
この投稿は投稿者により削除されました。(2022.03.21 13:43)
2022.03.21 13:43
過去問さん(No.9) 
> 名無しさん
問題文に記載されているコードを実際にPCで書いてみて、実行してみてはいかがでしょうか。
2022.03.13 16:41
nsさん(No.10) 
FE シルバーマイスター
「クラスを継承した際の上位・下位とは何か」を説明するべきだったようですね。失礼いたしました。
5問の中からJavaを選択するレベルの方ですので、継承は理解していると思い、abstract宣言の説明から始めてしまいました。

私からの回答は不要とのことですので、このスレッドの書き込みはこれで最後にしようと思います。頑張ってください。
2022.03.13 16:53
Haneさん(No.11) 
この投稿は投稿者により削除されました。(2022.03.21 09:55)
2022.03.21 09:55
名無しさん(No.12) 
情報技術の勉強の前に学ぶべきことがありそうですね。
2022.03.14 20:53
HALさん(No.13) 
質問が意味不明過ぎて理解出来ない私でも現象が理解できたとても丁寧で素晴らしい回答。
2022.03.15 14:04
あいうさん(No.14) 
コンダクトへ
是正コメントのみコンダクト削除ではなく、中傷コメントも削除するべきでしょう。
2022.04.01 07:57
あいうさん(No.15) 
HALさんのコメントは明らかに失礼きわまりないものです。
2022.04.01 07:58
えおかさん(No.16) 
この投稿は投稿者により削除されました。(2022.04.02 12:44)
2022.04.02 12:44
あいうさん(No.17) 
ここの管理者の神経はよくわかりませんのでしょうがないですよ。
2022.04.05 08:00
あああさん(No.18) 
はい、そこまで。
2022.04.13 01:45
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop