[英]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.