Java の仮想メソッド呼び出しとは何ですか? 質問する

Java の仮想メソッド呼び出しとは何ですか? 質問する

私はコンピューターサイエンスのテストで次の段落を見たのですが、1時間グーグルで検索したのですが何も見つからなかったので、ここでその意味について良い説明が得られることを期待しています。

「Java言語は仮想メソッド呼び出しJava アプリケーションでは、実行されるメソッドは実行時のオブジェクト タイプによって決まります。

それはどういう意味ですか?誰かもっとわかりやすく説明できますか?

ベストアンサー1

これらの行の作成者は、 の C++ 用語を使用しましたvirtual

より適切な用語は動的バインディング / 動的ディスパッチ

つまり、オブジェクトの動的タイプ静的な型ではなく、どのメソッドが呼び出されるかを「選択」します。

例えば: [疑似コード]:

class A {
  public void foo() { }
}
class B extends A { 
  public void foo() { }
}

呼び出すとき:

A obj = new B();
obj.foo();

B.foo()A.foo()が呼び出され、の動的型は でobjあるため、は呼び出されませんB

おすすめ記事