JavaSE-super
1.每一个类的无参构造的第一行带有一条隐式代码:super(),自动调用父类的无参构造
2.当我们创建一个有父类的无参对象时,实际已经调用了它父类的无参构造方法,不过调用它父类构造方法并不是创建了父类对象,父类对象在内存中是不存在的
3.在new一个对象时,执行到构造方法时,对象就已经创建了;但调用构造方法并不意味着对象就创建了,比如调用父类的构造时,父类对象是不创建的
我想应该有很多人在学习面向对象的时候对构造方法和对象之间的关系有一些误解,所以查了一些资料,总结如下:
1.首先要说明的是对象不是构造函数产生的,它只是创建对象过程中的一步,主要作用是完成类成员变量初始化,设计初衷是为了在函数运行过程中动态初始化,因为有些变量的初始化需要推迟到运行中完成。
2.new一个构造方法一定会创建一个对象,创建一个对象也一定会调用本类的构造方法,但是调用构造方法不一定会产生与之对应的对象。
3.例如继承了super类的子类,其构造方法会隐式调用父类的构造方法,但是这里并没有创建父类的对象,仅仅是为了初始化子类继承父类的变量
参考链接:https://www.imooc.com/article/details/id/17047
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~