★★Java質問・相談スレッド184★★ (371レス)
上下前次1-新
抽出解除 レス栞
87(2): (ワッチョイ ea55-ZR1D) 2022/12/22(木)10:34 ID:tmbBFS3W0(3/5) AAS
>>86
訂正します:
class A {
■■int m1() {
■■■■return 100;
■■}
■■int m2() {
■■■■return 2 * m1();
■■}
}
省9
89: (ワッチョイ ea55-ZR1D) 2022/12/22(木)10:36 ID:tmbBFS3W0(5/5) AAS
訂正します:
>>87
のように親クラス A を変更した場合、クラス B の m2 メソッドを実行すると、
250 がリターンされると本に書いてあります。
A の変更前は、 210 が返されていたので、リターンされる値が変わってしまったことになります。
A の変更後、このあたりの仕組み、ルールがよく分かりません。
B の m2() を実行すると、 A の m2() のリターン結果に 10 足した値がリターンされる。
A の m2() が実行されると、 B の m1() のリターン結果を2倍した値がリターンされる。
ようですが、どういうルールに従っている結果でしょうか?
96: (アウアウウー Sa1f-MkkF) 2022/12/25(日)23:40 ID:8AzSKsIAa(1) AAS
>>87
B.m2() を呼ぶと、super で、A.m2()が呼ばれる
この時、this が、B インスタンスから、
その中のA インスタンス部分を指すように変わる
だから、A.m2()を呼ぶと、
B.m1()ではなく、A.m1()が呼ばれる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.103s*