★★Java質問・相談スレッド184★★ (371レス)
★★Java質問・相談スレッド184★★ http://mevius.5ch.net/test/read.cgi/tech/1632019965/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
87: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:34:49.73 ID:tmbBFS3W0 >>86 訂正します: class A { ■■int m1() { ■■■■return 100; ■■} ■■int m2() { ■■■■return 2 * m1(); ■■} } class B extends A { @Override ■■int m1() { ■■■■return super.m1() + 20; ■■} ■■int m2() { ■■■■return super.m2() + 10; ■■} } http://mevius.5ch.net/test/read.cgi/tech/1632019965/87
89: デフォルトの名無しさん (ワッチョイ ea55-ZR1D) [] 2022/12/22(木) 10:36:14.86 ID:tmbBFS3W0 訂正します: >>87 のように親クラス A を変更した場合、クラス B の m2 メソッドを実行すると、 250 がリターンされると本に書いてあります。 A の変更前は、 210 が返されていたので、リターンされる値が変わってしまったことになります。 A の変更後、このあたりの仕組み、ルールがよく分かりません。 B の m2() を実行すると、 A の m2() のリターン結果に 10 足した値がリターンされる。 A の m2() が実行されると、 B の m1() のリターン結果を2倍した値がリターンされる。 ようですが、どういうルールに従っている結果でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1632019965/89
96: デフォルトの名無しさん (アウアウウー Sa1f-MkkF) [sage] 2022/12/25(日) 23:40:35.90 ID:8AzSKsIAa >>87 B.m2() を呼ぶと、super で、A.m2()が呼ばれる この時、this が、B インスタンスから、 その中のA インスタンス部分を指すように変わる だから、A.m2()を呼ぶと、 B.m1()ではなく、A.m1()が呼ばれる http://mevius.5ch.net/test/read.cgi/tech/1632019965/96
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.911s*