1

すべての Java 関数は暗黙的に仮想的であると聞いたことがありますが、これが希望どおりに実行されるかどうかはまだわかりません。

子 B を持つクラス A があるとします。A と B の両方に foo() という関数があるため、B の定義が A の定義をオーバーライドします。

また、A には、A のインスタンスをパラメーターとして受け取る関数が呼び出されているとします。

B のインスタンスを関数に渡すと、foo() のどの定義が呼び出されるのでしょうか? A と B のどちらですか?

4

2 に答える 2

3

B の実装が呼び出されます。
まさにその通りvirtualです。

于 2013-05-17T20:24:06.510 に答える