[英]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
類的實現借用了Employee
和Person
類的實現 - 但是,僅僅因為您從這些類繼承,並不意味着它們被視為單獨的對象。
您的程序將只為 Manager 類創建一個對象。 Manager 類擴展了 Employee 和 Person 的屬性/行為,但它只會為 Manager 而不是為其他人創建對象。
根據 Object 的基本定義 - 它是類的實例,而類只是關於如何創建對象的藍圖。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.