new对象的时候父类对象也被创建了吗

new对象的时候父类对象也被创建了吗

执行结果

new对象的时候父类对象也被创建了吗

发现父类的构造被执行了,而且是在子类构造函数之前执行的。

但是这能说明创建子类的时候父类也被创建了吗?

我认为创建子类对象时,父类对象并没有被创建。

那既然父类对象没被创建,为什么父类的构造函数执行了

因为在new子类的时候,也就是在子类的构造函数里,你有可能会用到父类里数据,所以你得看一下父类里对这些数据是怎么初始化的吧,所以得调用父类的构造函数,但是调用了父类的构造,绝不代表父类也生成了对象

new对象的时候父类对象也被创建了吗

可以看下上边的图片,在创建子类对象时,会把父类里的成员变量和方法也加载进内存(因为要加载进内存,所以要看下这些数据是怎么初始化的,所以调用了父类的构造,仅此而已,并不是去创建了父类对象),然后用this和super这两个引用来区分是父类的还是子类的,但是这个内存区域是子类的内存区域,绝不是父类的

this指向了不仅父类可继承的成员变量和可继承的方法外,它还指向了子类的成员变量和方法

而super仅仅只是指向了子类对象中从父类继承的成员变量和方法。

以上是个人的理解,如果不对请在评论区指正,谢谢

相关文章:

  • 2021-12-07
  • 2021-08-27
  • 2021-04-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-04
  • 2021-07-03
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
相关资源
相似解决方案