创建子类对象时,会创建父类对象吗
一、查询网上的结论:
创建子类对象时, 会先调用子类构造方法对子类对象进行初始化,子类构造方法的第一行又会调用父类构造方法对父类进行初始化(不会创建父类对象, 但是会在子类对象的内存空间中开辟一块被包含的内存空间存储父类的信息,包括私有成员变量和非私有成员变量<私有成员变量子类对象无法直接用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.子类构造
相关文章:
创建子类对象时,会创建父类对象吗
一、查询网上的结论: 创建子类对象时, 会先调用子类构造方法对子类对象进行初始化,子类构造方法的第一行又会调用父类构造方法对父类进行初始化(不会创建父类对象, 但是会在子类对象的内存空间中开辟一块被包含的内存空间存储父类…...
华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数
华为交换机WEB操作 使用的是真机S5735,目前主流的版本都适用(V1R5~V2R1的就不在列了,版本太老了,界面完全不一样,这里调试线接的console口,电脑的网络接在ETH口) 「模拟器、工具合集」复制整段内…...
MongoDB分片集群架构实战
分片集群架构 分片简介 分片(shard)是指在将数据进行水平切分之后,将其存储到多个不同的服务器节点上的一种扩展方式。分片在概念上非常类似于应用开发中的“水平分表”。不同的点在于,MongoDB本身就自带了分片管理的能力&#…...
架构 | 调优 - [zookeeper]
INDEX 0 实际使用的 zoo.cfg1 基础知识1.1 官网文档1.2 日志相关配置1.3 tick 时间 0 实际使用的 zoo.cfg ### 时间配置 ### 一个tick(滴答)的毫秒数,时间单位,可以认为是心跳时间 tickTime2000 ### follower 连接 leader 并与之…...
威联通-004 安装photoview相册应用Docker镜像
文章目录 前言准备MariaDB 10phpMyAdminphotoview 安装步骤1.安装MariaDB 10和phpMyAdmin2.初始安装MariaDB 103.进入phpMyAdmin添加账户4.手动下载photoview的Docker库注意:安装 phpMyAdmin 报错5.配置photoview6.容器安装成功之后进入photoview注意:这…...
Github clone 的时候出现Error in the HTTP2 framing layer错误
解决方案 github鉴权认证,打开gitbash,并输入 ssh-keygen -t rsa -C "emailicjs.cc" 执行后会在 .ssh 目录生产两个文件:id_rsa(私有密钥)和id_rsa.pub(公开密钥) 直接默认回车执行…...
SpringBoot中@Import和@ImportResource和@PropertySource
1. Import Import注解是引入java类: 导入Configuration注解的配置类(4.2版本之前只可以导入配置类,4.2版本之后也可以导入普通类)导入ImportSelector的实现类导入ImportBeanDefinitionRegistrar的实现类 SpringBootApplication…...
OpenCV 简介与安装方法
大家好啊,我是董董灿。 如果你在做计算机视觉相关的工作,肯定少不了使用 OpenCV 库。 在《计算机视觉专栏》的传统计算机视觉部分,我曾经使用 OpenCV 进行了很多图像的处理,比如边缘检测。 刚好最近在整理一份文稿,…...
pycharm基本库安装的几种方法
1、pycharm基本库安装的几种方法 1)一次性设置下载源 cmd窗口(管理员方式).输入以下命令: pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghu…...
安装更新upgrade导致ubuntu崩溃
安装更新导致ubuntu崩溃 前言uuid编不过,导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个,以后遇到都放在这里,以提醒自己。 前言 如果从10000年看现在的linux,不是说不完美,而是糟透了。 linux的版本号…...
数学建模选MATLAB还是Python?
选择MATLAB还是Python进行数学建模,取决于多个因素,包括你的具体需求、个人偏好、项目要求以及你已有的技能。以下是一些考虑因素: 1. 易用性: • MATLAB:对于数学和工程问题,MATLAB提供了一个非常直观和…...
python数组增加元素
append、appext、insert,在某位置插入insert最在行。 (笔记模板由python脚本于2024年12月04日 19:41:46创建,本篇笔记适合python基础编程的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖…...
【笔记】离散数学 1-3 章
1. 数理逻辑 1.1 命题逻辑的基本概念 1.1.1 命题的概念 命题(Proposition):是一个陈述句,它要么是真的(true),要么是假的(false),但不能同时为真和假。例如…...
AI技术在电商行业中的应用与发展
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
【Linux篇】权限管理 - 用户与组权限详解
一. 什么是权限? 首先权限是限制人的。人 真实的人 身份角色 权限 角色 事物属性 二. 认识人–用户 Linux下的用户分为超级用户和普通用户 root :超级管理员,几乎不受权限的约束普通用户 :受权限的约束超级用户的命令提示符是#,普通用…...
【AI系统】昇腾推理引擎 MindIE
昇腾推理引擎 MindIE 本文将介绍华为昇腾推理引擎 MindIE 的详细内容,包括其基本介绍、关键功能特性以及不同组件的详细描述。 本文内容将深入探讨 MindIE 的三个主要组件:MindIE-Service、MindIE-Torch 和 MindIE-RT,以及它们在服务化部署…...
美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索
在当今全球能源格局不断变化的大背景下,对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节,其规模和复杂度也在不断攀升。在储能项目的运营管理过程中,安全监控、设备运维以及数据管理等方面面临着…...
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED]
使用requess库访问https网址时,返回 (Caused by SSLError(SSLError(1, [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled (_ssl.c:1147)))) 原因可能是服务器的认证方式版本太低然后requests抛弃了这种认证方式 参考ÿ…...
12.2深度学习_视觉处理CNN_池化层、卷积知识
3.池化层 3.1 概述 池化层 (Pooling) 降低维度, 缩减模型大小,提高计算速度. 即: 主要对卷积层学习到的特征图进行下采样(SubSampling)处理。 池化层主要有两种: 最大池化 max pooling 最大池化是从每个局部区域中选择最大值作为池化后的值…...
Kafka 常见面试题深度解析
一、基础概念 1. 请简要介绍 Kafka 的基本架构。 Kafka 主要由生产者(Producer)、消费者(Consumer)、代理(Broker)、主题(Topic)和分区(Partition)等组成。…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
