簡體   English   中英

在堆上創建對象

[英]Object creation on Heap

class Person {
    public Person(){}
}
class Employee extends Person{
    public Employee() {}
}
class Manager extends Employee{
    public Manager() {}
}
public class HeapObjectTest {
    public static void main(String[] args) {
        Manager manager = new Manager();}
}

上述代碼將在堆上創建多少個對象?

如果我們只談論你的代碼,那么只有one Manager object ,並且會有構造函數鏈接到 Object 類。 除了這個對象之外,JVM 還需要其他對象來運行您的程序,這些class objects, method objects將是class objects, method objects ,它們當前加載以運行您的程序。

有關任何程序的執行順序的更多詳細信息,要獲得更多理解,請閱讀以下鏈接,

https://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.1.1

調用這行代碼:

Manager manager = new Manager();

將創建一個對象,即Manager類的一個實例。 Manager類的實現借用了EmployeePerson類的實現 - 但是,僅僅因為您從這些類繼承,並不意味着它們被視為單獨的對象。

您的程序將只為 Manager 類創建一個對象。 Manager 類擴展了 Employee 和 Person 的屬性/行為,但它只會為 Manager 而不是為其他人創建對象。

根據 Object 的基本定義 - 它是類的實例,而類只是關於如何創建對象的藍圖。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM