1

リンクのこの回答に従ってhttps://stackoverflow.com/a/6606490/4816065

Java 仮想マシンの Sun の実装の一部では、クラス インスタンスへの参照は、それ自体が一対のポインタであるハンドルへのポインタです。もう 1 つはオブジェクト データ用にヒープから割り当てられたメモリです。

したがって、2 つのクラス A と B は次のようになります。

class A{
    void m1(){
        System.out.println(" from m1 method ");
    }
}

class B extends A {
    void m2(){
        System.out.println(" from m2 method ");
    }
}

main メソッドでは、次のようにオブジェクトを作成します。

A a1 = new A(); // The dispatch table of a1 contains only method m1.
B b1 = new B(); // The dispatch table of b1 contains method m1 and m2.
A a2 = new B(); // What will the dispatch table of a2 be?

m1 のみを持ちますか (オブジェクト参照が A タイプであるため)、または m1 と m2 を持ちますか (参照されるオブジェクトが B タイプであるため)。

4

0 に答える 0