java创建一个子类对象是会调用父类的构造方法会不会创建父类

【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题 测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到 阅读详情

1、子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。
这个地方我说的是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即" <init>"方法(红色部分为方法名),初始化方法是由java源程序的三个部分组成的,一个部分是成员字段后的直接的初始化语句,例如private int i=0;private Date date=new Date();等等,第二个部分是由初始化块组成,例如:

Java code
   public class Test{ private int i=0;//初始化第一部分 //以下大括号内为初始化第二部分 { this.i=4; //do something...... } }


第三个部分就是java源代码中的构造方法中的代码,java源代码中有几个构造方法,那么class文件中就有几个初始化方法,编译器会把第一部分与第二部分分别复制到每个初始化方法的前端,然后把初始化方法对应参数的构造方法的代码复制到相应初始化方法中(这里说的复制其实应该说是编译,不过为了让你更好理解所以如此说).
那么说初始化方法如何追述其父类的,这也关系到初始化方法的结构,初始化方法的执行顺序以及结构就如上所说,但是每个初始化方法的第一个执行指令就是调用另外一个初始化方法,这个初始化方法可能是自身类某个初始化方法,例如你的构造函数中第一句有类似this(...)这种语句,那么初始化方法就会调用自身类的指定构造方法;如果你的构造方法中没有指定构造方法调用,那么初始化方法会默认调用父类无参数初始化方法,如果你的子类第一句为 super(....),那么初始化方法会调用父类指定初始化方法。这种调用过程会递归进行调用,直到这个类是java.lang.Object类。
调用初始化方法并不代表会生成对象,你的java代码中出现new关键字加上构造方法的调用,只会生成一个对象,其父类对象不会生成,所以调用父类为抽象类的构造方法完全是合理的。而且初始化方法对于虚拟机来说只是一个名称叫做" <init>"的普通方法,区别只是生成对象以后调用而已(sun 的jdk私有包中有绕过构造方法生成对象的方式,可以证明之上说法,具体如何我这里不陈述)。
然后回答你的第二个问题,抽象类中的构造方法其实是用来给继承的子类来用的,因为构造方法相当于初始化方法,当子类调用构造方法时必须调用父类构造方法,所以你可以在子类产生对象时抽象类中按需求初始化抽象类中的字段以及执行一些初始化代码。其实并不是一定要生成某个类的实例才调用构造方法,子类也需要调用父类构造方法。而生成实例也并不一定会调用构造方法,在某些特殊实现中或者特殊情况下,生成实例不会调用构造方法。而调用了构造方法也不一定就生成了一个实例,但是那一定是一个实例调用的,就像一个普通的实例方法一样。

小土堆学习笔记1:Dataset类代码实践 上一页中反复提到“类”,这究竟是什么东西?按我的理解(肯定不准确也不正式),class类就是某一个东西的共性,而且是等待被确认的共性。比如每台手机都有它自己的品牌、框架、价格等等属性,class类正是这些尚不确定的属性;而一旦确认了这些属性,就能够确认这到底是一台什么型号什么状态的手机,在确认了全部属性后就知道,这是一台Apple 16 Pro Max。抽象的不确定的共性就是类,具体的确定的个性就是示例。这个共性可以被用于多个编程目的,只不过某一个具体的编程行为还有它自己的独特性。 阅读详情

相关推荐

java 二维码生成及其标签打印

本文主要内容 二维码生成 二维码标签预览及打印 二维码生成 笔者此次的二维码是通过调用第三方接口生成的,具体流程如下: 根据规范要求调用第三方接口,返回二维码下载地址及二维码图片的属性值(图片大小等) 根据返回的值获取二维码下载地址,根据地址下载二维码图片,保存至本地磁盘及记录数据信息 扫描二维码跳转相应地址,显示资产的基本信息 最终生成的二维码如下图所示: 预览并批量打印二维码标签 先...

孙小牟的博客 4942

java中,子类初始化时一定要调用父类的构造方法,不调用行吗?

通过调用父类的构造方法来初始化父类的公共成员方法和公共成员变量,子类才可以正常使用父类方法或变量。

Greedy Hat的博客 7181

MapGIS地质剖面图绘制实战:从数据准备到整饰出图

本文详细解析了MapGIS地质剖面图绘制的全流程,从数据准备到整饰出图,涵盖了等高线处理、GRD格网化、比例尺控制等关键步骤。通过实战技巧和案例分析,帮助地质工作者高效完成专业地质剖面图绘制,提升矿产勘探和工程勘察的工作效率。

weixin_28335283的博客 592

Java里子类调用父类构造方法问题

  在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?        答案如下:         当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候,必...

weixin_34326179的博客 2111

【Matlab/simulink/carsim】再生制动

【Matlab/simulink/carsim】再生制动

weixin_62311849的博客 621

西门子S7-1500 PLC模块化编程与生产线自动化实践

PLC(可编程逻辑控制器)作为工业自动化核心设备,其模块化编程技术能显著提升产线控制系统的开发效率。通过SCL高级语言实现算法封装、功能块(FB)复用等工程实践,可构建稳定可靠的分层式控制架构。本文以西门子TIA Portal平台为例,详解S7-1500系列PLC在汽车零部件产线中的标准化应用方案,包含配方管理、设备联动等典型场景的SCL实现,以及Profinet通信、虚拟轴同步等进阶技巧。特别适用于需要快速实施中大型生产线自动化改造的工程师,提供经过验证的异常处理机制和模块化设计规范。

weixin_34341229的博客 457

为什么子类的构造方法一定会调用父类的某个构造方法

首先我们要知道构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用 子类中,它在调用父类中空参数的构造函数。因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程 定义一个Dog类继承自Animal类 Animal类中有一个有参构造方法,传入变量 name public cl

AsheAndWine的博客 1万+

World Action Model:经典论文

郑困时,图prorpt为机量人压务时,退过驱制解弱词表(constrsinsd decoding), 强附模型只从.256个者动作token中保H, B象总注活地。始VLA之一,RT-2使用了大量的五联网VQ据与少里的机械网的AcSonDat行CoFine-Tunng, 独组sl, 共i744个episode,Mous使用三个专累模,分是vidogonmedel,actonesget,understandng。包的核定之的的观到沟血黄动作,预之后现(vorlemodel),tseing,2。

u013250861的博客 407

创建子类时为什么会调用父类的构造函数,创建子类对象时,也会创建父类对象,直到最底部(即层层创建对象)

创建一个类的时候,首先创建父类的对象,在创建子类的对象,这是一个层层创建的过程。

weixin_45753504的博客 2982

芯片低功耗设计的两种常用EDA流程

如题。

EricWZY2008的专栏 5557

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

XiaoqiangClub的博客 6389

子类一定会调用父类的构造器吗?如果会,那么子类为什么要调用父类的构造器?

显示赋值

benbenniaono1的博客 3786

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1346

JAVA 子类 extends 父类,super,调用

子类定义格式 【修饰符】class 子类名 extends 父类名 { 属性成员的定义; 方法成员的定义; } 【修饰符】:用来说明类的访问权限(public ,absttrct等) 只能继承一个父类 public class Son extends Father { } 调用父类的无参构造方法 public class Father{ SuperClass(){ System.out.println("Father constructor"); } public static void m

A_niame的博客 1099

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java之Object构造方法(创建子类对父类构造方法的调用)

在Java中Object类是其他所有Java类的基类(直接或间接继承),在Object类中会有一个默认的无参构造方法:public Object(){};在所有的Java类中如果没有显式的写出构造方法,也同样会默认一个无参的构造方法.作为所有Java类的基类(Object自己除外),Object的构造方法是所有Java类创建对象时所必须调用的. 在Java中,创建子类对象时,因为可能会用到父类的

u012493207的博客 2667

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

浅论创建子类对象时是否创建了父类对象

浅论创建子类对象时是否创建了父类对象 这仅仅是我个人的理解,因为是初学者,所有可能存在理解错误或者不到位的情况。如果存在错误请指出,谢谢。 我们都知道在创建子类对象时,调用子类构造方法前,必须调用父类的构造方法。 那么调用构造方法就代表着创建对象了吗? 假设1: 如果创建子类对象没有创建父类对象,那么我们子类继承过来的属性和通过super调用的方法来自哪里? // 父类A ...

caoruntao_的博客 6941

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java子类调用父类构造方法

在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?        答案如下:         当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类...

weixin_43887873的博客 9172

java在调用子类构造方法之前会先调用父类没有参数的构造方法

在Java中,当调用子类的构造方法时,Java会自动在调用子类构造方法之前调用父类的无参构造方法(如果存在)。如果父类没有无参构造方法,子类构造方法必须显式调用父类的其他构造方法。这个机制背后的原因是为了确保父类部分的初始化在子类部分之前完成,从而保证对象创建过程中各部分状态的一致性和正确性。

Flying_Fish_roe的博客 1871

Java子类的构造方法为什么要先调用父类的构造方法

Java中规定:在实例化子类对象时,必须先调用父类的构造方法,再调用子类的构造方法(先有父母再有孩子)。且必须在子类构造方法的第一行调用父类方法。 一般在子类中显式的调用父类构造方法,若没有显式调用的调用,则子类会默认调用父类的无参构造方法。(**若父类没有无参构造方法,则会编译报错**) 为什么要这样规定呢? 笔者认为:子类会从父类那里继承所有的成员变量与方法,若在每次继承父类时都在子类的构造方法中重新初始化继承的属性和行为,整个程序会变得冗长而复杂。 所以在继承父类后若要初...

weixin_45599285的博客 8850

java子类怎么调用父类的构造方法_Java里子类调用父类构造方法问题

在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?答案如下:当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出...

weixin_42600128的博客 3842

JAVA创建子类对象不会实例化父类对象

JAVA创建子类对象不会实例化父类对象 学习java之初大家难免会遇到很多抽象的理论,在此分享下自己的微薄浅见,希望能给予读者略有帮助. 我们都知道,在java中子类会继承父类的一切属性(成员变量)和方法(构造方法除外).我们也知道当我们用new关键字调用子类的构造方法的时候,子类构造方法会向上默认调用父类的构造方法. 这时,对于很多初学java的同学就会认为java中既然调用了父类的构造方法,那么也就创建了当前子类的父类对象. 此种观点是由理解的误区的,下面解释说明. java中创建对象的方式有四种:

ccwangfei 1566

关于子类调用父类构造方法的问题

昨天班级有一个小测验,结果自己觉得还不错的错了好几道题,自己总结了一下,主要是子类继承父类时候构造方法的问题不太清楚,今天就总结一下。1.子类会默认调用父类的无参构造方法举例来看:public class Derived extends Base {        public Derived (String s) {               System.out.println("这是子类的...

dragon901的博客 2万+

子类继承父类时,创建对象,构造方法的调用问题

在学习继承的时候,遇到一些小问题,这里总结一下,有错误望指正: 先来看一段代码: //标准父类 class Father{ //成员变量 private String name; private int age; //构造方法 //空参 public Father(){ } //有参 public Father(String nam

阿班的博客 1万+

子类调用父类构造方法 java_JAVA子类调用父类构造方法

父类的构造方法不能被子类继承。以下语句中MyException类继承了java.lang.Exception类。public class MyException extends Exception{} //MyException类只有一个隐含的默认构造方法尽管在Exception类中定义了如下形式的构造方法:public Exception(String msg)但MyException类不会继承...

weixin_34432821的博客 3247

JAVA中子类会不会继承父类的构造方法

声明:刚刚接触java不久,如果理解有错误或偏差望各位大佬强势批判 java中子类能继承父类的构造方法吗? 父类代码: 1 class Father { 2 String name ; //就不set/get了 3 //Father类无参构造方法 4 public Father(){ 5 System.out.print...

NathanniuBee的博客 2486

Java中创建子类对象会创建父类对象么?

答案是否定的,在Java中创建一个子类对象是不会创建父类对象的。 通过一个实例来证明:实例:父类Base.javapublic class Base { private String str; public Base() { System.out.println("Base()"); System.out.println(this); }

编号0347 1万+
上一篇: Java将子类对象赋值给父类对象
下一篇: java流
Java_Cowboy
博客等级 码龄19年 59粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值