WRTの継承を連鎖コンストラクタでのオブジェクトの作成

アナンド・クマール:

私たちは、クラスのインスタンスを作成すると、自動的にスーパークラスのコンストラクタの1の方法または別のを呼び出します。我々はそれがまた見えない親クラスのフィールドの参照を持っている子クラスのインスタンスを作成するときに継承では、どのように親クラスのフィールド参照は、ヒープ領域内の子クラスに指摘されていますか?我々は任意のクラス(A REF =新しいA();)のインスタンスを作成するとき、例えば、オブジェクトがスタック領域(REF)の参照存在にリンクされているヒープメモリ(新しいA())で作成されています。

私が作成したNクラスのインスタンス同様にあれば、それは私がObjectクラスのn個の異なるインスタンスを作成していますことを意味するのでしょうか?すべてのクラスとして、デフォルトではObjectクラスを拡張します。

GhostCat敬礼モニカC.:

いくつかのクラスBは、いくつかのprivateフィールドxとyを持っていることを前提としています。B.のインスタンスのために割り当てられた「メモリ領域」のコースが存在するBのメソッドが呼び出されたときに所望の動作を与えるために、「その仕事」を行うために、これらのフィールドのマスト

BがCによって拡張されたときに、あなたがCをインスタンス化するとき今、そしてもちろん、それらのフィールドのxとyの必要性も、割り当てられます。あなたはそれについて正しいです。

しかし:それはあなたがJVMがCのインスタンスのメモリを割り当てたときに、それが継承されたxとyフィールドの余地があることが必要であることを知っていることを単に意味C.それのための「追加」Bオブジェクトをインスタンス化することを意味するものではありません。 。

そして最後に:クラスObjectはないではない任意のフィールドを持っています。「何がオブジェクトを拡張するため、」そのため、追加のメモリのオーバーヘッドはありません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=333169&siteId=1