★★Java質問・相談スレッド184★★ (371レス)
上下前次1-新
抽出解除 レス栞
92(2): デフォルトの名無しさん (ワッチョイ be10-e5AJ) [sage] 2022/12/23(金) 18:47:10.59 ID:TsC3S0cB0(1) AAS
>9090(1): デフォルトの名無しさん (テテンテンテン MMe6-WNmf) [sage] 2022/12/22(木) 12:07:43.69 ID:syRoAR41M(1/2) AAS
各メソッドを
int m1() { // class A
System.out.println("A.m1()");
return 100;
}
の様にして、実行してみれば一目瞭然
System.out.println(new A().m2());
->
A.m2()
A.m1()
200
System.out.println(new B().m2());
->
B.m2()
A.m2()
B.m1()
A.m1()
250
0点の回答。馬鹿。二度と書き込まないように。
>9191(1): デフォルトの名無しさん (テテンテンテン MMe6-WNmf) [sage] 2022/12/22(木) 12:25:33.69 ID:syRoAR41M(2/2) AAS
まあ少し分かりにくいんだけど、
クラスBのインスタンスを生成してメソッドB.m2()からクラスAのメソッドA.m2()が"super.method名()"で呼ばれたとして、
その時、クラスAのメソッド(A.m2())中でもthisはやっぱり、当然に、クラスBのインスタンスのままなんですよ(勝手にインスタンスが生まれ変わったりはしない)
で、クラスBのインスタンスに対してm1()呼び出しをするので、B.m1()が呼ばれます
先ほどの様に、各メソッドに
System.out.println(this.getClass().getName());
でも追加してみればわかるかと
30点の回答。アホ。二度と書き込まないように。
93: デフォルトの名無しさん (ワッチョイ aa7c-e5AJ) [sage] 2022/12/23(金) 18:51:33.36 ID:o+ONuUnd0(1) AAS
>>92が100点の回答しろよw
無能なんだろうけどw
94: デフォルトの名無しさん (ワッチョイ 3bad-s0Sd) [] 2022/12/25(日) 21:24:32.33 ID:fbG5Klx70(1) AAS
>>92にはこれは無理だな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.709s*