Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

    • 计算机常识

    • Java语言概述

    • 基本语法

    • 数组

    • 面向对象

      • 面向对象
      • 类和对象
      • 类的成员-属性
      • 类的成员-方法
      • 类的成员-构造器
      • 面向对象特性-封装
      • this关键字
      • package关键字
      • import关键字
      • 面向对象特征-继承
      • 方法的重写
      • 访问权限修饰符
      • super关键字
      • 子类对象实例化的全过程
        • 子类对象实例化的过程
      • 面向对象特征-多态
      • 强制类型转换
      • Object类
      • 包装类
      • static关键字
      • 单例设计模式
      • main方法
      • 类的成员-代码块
      • final关键字
      • 抽象类与抽象方法
      • 接口
      • 类的成员-内部类
    • 异常处理

  • Java核心基础

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

  • 运维

  • 后端
  • Java入门基础
  • 面向对象
SaulJWu
2020-12-11

子类对象实例化的全过程

# 子类对象实例化的过程

当我们实例化子类时,会产生一系列过程

image-20201211175408564

思考

1、为什么super(...)和this(...)调用语句不能同时在一个构造器中出现?

2、为什么super(...)或this(...)调用语句只能作为构造器中的第一句出现?

比如下图中的new Dog()

image-20201211174603981

从结果上来看

子类继承父类以后,就获取了父类中声明的属性或方法。

创建子类的对象,在堆空间中,就会加载所有所有父类声明的属性。

从过程上来看

当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有的弗雷的结构,搜所以才可以看到内存中有父类的结构,子类对象才可以考虑进行调用。

image-20201211175309640

明确:虽然创建子类对象时,调用了父类的构造器,但是自始至终就创建一个对象,即为new的子类对象。

帮我改善此页面 (opens new window)
#this#super#子类#过程
上次更新: 2020/12/18, 12:50:58
super关键字
面向对象特征-多态

← super关键字 面向对象特征-多态→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式