基本クラス:
public class Inheritance {
int i;
Inheritance() {
System.out.println("I am in base class" + i);
}
}
派生クラス:
public class TestInheritance extends Inheritance {
TestInheritance() {
System.out.println("I am in derived class");
}
public static void main(String[] args) {
TestInheritance obj = new TestInheritance();
}
}
これは、上記で起こっていることについて私が念頭に置いていることです。
デフォルトで派生クラスのオブジェクトを作成するsuper()
と、基本クラスのコンストラクターが呼び出され、変数が初期化されますi
。
さて、私の質問は次のとおりです。この場合のコンストラクターは変数i
を初期化するだけで、クラスの具体的なオブジェクトを作成しませんか?
これまで読んだことから、作成されたオブジェクトは1つだけです-i
変数を持つ派生クラスのオブジェクトです。
しかし、基本クラスのコンストラクターが呼び出された時点から、派生クラスのコンストラクターが呼び出された時点から、どのように/どこi
にメモリに格納されますか?
そして、基本クラスが抽象クラスの場合はどうなるでしょうか。
さまざまな時点でメモリ内で何が起こっているかを知ることができれば、本当に感謝しています。
根本的に間違っていることを言っている場合は、お知らせください。これがどのように機能するかを本当に知りたいです。