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();}
}
将在Heap for Above代码上创建多少个对象?
答案 0 :(得分:1)
如果我们只讨论你的代码,那么只有one Manager object
,并且将有构造函数链接到Object类。除了这个对象之外,JVM还需要其他对象来运行你的程序,这些对象将是class objects, method objects
,它们当前被加载来运行你的程序。
有关任何程序执行顺序的更多详细信息,请参阅以下链接,
https://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.1.1
答案 1 :(得分:0)
调用这行代码:
Manager manager = new Manager();
将创建一个对象,即Manager
类的实例。 Manager
类的实现借鉴了Employee
和Person
类的实现 - 但是,仅仅因为你继承了这些类,并不意味着它们被视为单独的对象。
答案 2 :(得分:0)
您的程序将只为Manager类创建一个Object。 Manager类扩展了Employee和Person的属性/行为,但它只为Manager创建对象而不为其他人创建对象。
根据Object的基本定义 - 它是类的一个实例,而类只是关于如何创建对象的蓝图。希望这会有所帮助。