Javaでは、1つのオブジェクトは次のように父のメソッドを呼び出すことができます:((Father) this).m1();
その相違点は何ですか:Father f = sonObj; f.m1();
?Java - 差分((classType)this).m1()と静的参照
public Father extends Object {
public void m1(){}
}
public Son extends Father {
public void m1() {
((Father) this).m1();
}
}
Iのアドバイスを、あなたは最初にあなたのコードを実行してみてください。両方の 'm1()'にprintステートメントを置くことを忘れないでください。 – Azodious
javaのすべてのクラスが暗黙的に 'Object'クラスを拡張するので、明示的に' Object'クラスを拡張する必要はありません。 –
'((Father)変数).m1()を呼び出すと、Javaのように息子の' m1() 'が常に実行され、すべてのメソッドが仮想になります。この_within_ sonのm1()を実行しようとすると、Son.m1()の無限再帰が発生します – Quota