当前位置: 首页 > news >正文

创建子类对象时,会创建父类对象吗

一、查询网上的结论:

创建子类对象时, 会先调用子类构造方法对子类对象进行初始化,子类构造方法的第一行又会调用父类构造方法对父类进行初始化(不会创建父类对象, 但是会在子类对象的内存空间中开辟一块被包含的内存空间存储父类的信息,包括私有成员变量和非私有成员变量<私有成员变量子类对象无法直接用super访问>)。   有些文章也会将   "在子类对象的内存空间中开辟一块被包含的内存空间存储父类的信息" 理解成一个父类的伪对象或亚对象(和父类创建的对象结构相同,但不是真正的父类对象, 子类对象可以使用这个父类的亚对象调用父类的成员变量和成员方法, super就代表这个亚对象)

下边案例演示了: 子类访问父类的私有成员变量及成员变量的初始化过程

package cn.zyq.charging.order;class Father{//父类成员变量初始化过程private int age=1;//1.先给age分配空间并分配默认的值0, 然后执行手动的赋值语句赋值为1{//2.然后执行非静态代码块将age赋值为2age=2;}Father(){//3.再调用构造方法将age赋值为3age=3;}//子类的age初始化过程也是这样的public int getAge(){return age;}
}class Child extends Father {private int age=10;{age=20;}Child(){super();age=30;System.out.println(super.getAge());System.out.println(this.age);}}public class Test {public static void main(String[] args) {new Child();}
}

二、静态代码块和非静态代码块的执行顺序:

package cn.zyq.charging.order;
class Father{Father(){System.out.println("4.父类构造");}{System.out.println("3.父类代码块");}static{System.out.println("1.父类静态代码块");}
}class Child extends Father {private int age=10;static{System.out.println("2.子类静态代码块");}Child(){System.out.println("6.子类构造");}{System.out.println("5.子类代码块");}
}public class Test {public static void main(String[] args) {new Child();}
}

结果:

1.父类静态代码块
2.子类静态代码块
3.父类代码块
4.父类构造
5.子类代码块
6.子类构造

http://www.lryc.cn/news/497120.html

相关文章:

  • 华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数
  • MongoDB分片集群架构实战
  • 架构 | 调优 - [zookeeper]
  • 威联通-004 安装photoview相册应用Docker镜像
  • Github clone 的时候出现Error in the HTTP2 framing layer错误
  • SpringBoot中@Import和@ImportResource和@PropertySource
  • OpenCV 简介与安装方法
  • pycharm基本库安装的几种方法
  • 安装更新upgrade导致ubuntu崩溃
  • 数学建模选MATLAB还是Python?
  • python数组增加元素
  • 【笔记】离散数学 1-3 章
  • AI技术在电商行业中的应用与发展
  • 【Linux篇】权限管理 - 用户与组权限详解
  • 【AI系统】昇腾推理引擎 MindIE
  • 美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索
  • [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED]
  • 12.2深度学习_视觉处理CNN_池化层、卷积知识
  • Kafka 常见面试题深度解析
  • LVS默认的工作模式支持哪些负载均衡算法?
  • 洛谷P2670扫雷游戏(Java)
  • 【算法】【优选算法】位运算(下)
  • 前端性能优化篇:防抖和节流
  • 同为科技(TOWE)柔性定制化PDU插座
  • 【云原生系列】云计算中的负载均衡是什么,有什么用
  • 工业—使用Flink处理Kafka中的数据_ChangeRecord2
  • 【Java-数据结构篇】Java 中栈和队列:构建程序逻辑的关键数据结构基石
  • 工业—使用Flink处理Kafka中的数据_ProduceRecord1
  • 探索CSS版心布局:构建现代网页的黄金比例
  • 华为NPU服务器昇腾Ascend 910B2部署通义千问Qwen2.5——基于mindie镜像一路试错版(三)