gpt4 book ai didi

java - 创建子类实例时是否也创建父类(super class)实例?

转载 作者:行者123 更新时间:2023-12-01 18:25:53 24 4
gpt4 key购买 nike

我见过很多线程(例如: Inheritance in Java - creating an object of the subclass invokes also the constructor of the superclass. Why exactly? )说创建子类实例时不会创建父类(super class)的实例。我其实很同意这个观点。

但是,我找不到任何官方 Material (来自 Oracle)来支持这一点。我搜索了几个小时,却找不到任何东西。谁能给我推荐一个可靠的资源来确认这一点?

最佳答案

当您创建一个新实例并调用类构造函数时,堆中会保留足够的内存来存储该实例的属性。这些属性包括:

  • 直接属于您的类定义的属性;
  • 属于类层次结构树中所有上层节点的属性。

是的,调用父类(super class)构造函数,但其​​唯一目的是初始化父类(super class)的属性。它绝不意味着将创建父类(super class)的新对象。

检查这些链接,它们可能会帮助您了解该过程:

在第二个链接上,文档指出:new 创建了该对象。也就是说:它为所有类引用(对象属性)和原始值保留内存。然后,调用构造函数,其目的是初始化封闭类的属性。由于对象属性在 Java 中是引用,构造函数可以使用 new 来创建对象属性,它们的引用将是存储在对象内存中的值。父类(super class)构造函数只是为您的类继承属性继续执行此任务。

关于java - 创建子类实例时是否也创建父类(super class)实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com