java基础之构造器
构造器
学习java对于构造器应该很熟悉,但是有些人会认为构造器不是必要的,这就是对于构造器没有深入的了解。
每一个java类中都必须至少有一个显式或隐式的构造器,很多时候看到类中并没有定义构造器,有人会认为构造器不是必须的,其实那是编译器隐式的提供了一个无参构造器,否则在进行实例化的时候就无法成立
构造器是一个特殊的方法,用来构造并初始化对象,构造器与类同名
// person变量仅仅是引用了一个对象
Person person = new Person();
如果父类中只有一个有参构造器,而没有无参构造器的话,就需要子类必须提供一个构造器去显式的调用父类的有参构造器方法,否则就会出现编译错误
There is no default constructor available in 'com.zhanghe.study.duotai.Parent'
这里就验证了在子类构造器中会隐式的调用父类构造器(super()),而此时没有无参构造器了,就会出现异常
建议如果添加构造器的话保留一个无参构造器
注意:在构造器中的第一条语句要么是调用父类的构造器(使用super()),要么是调用本类中的另一个构造器(使用this());而且如果使用super()或this()语句的话,就必须是构造器的第一条语句,否则编译器就会报错,是为了让父类中的变量在使用前被正确的初始化
本文由 mdnice 多平台发布
本文来自博客园,作者:拾光师,转载请注明原文链接:https://www.cnblogs.com/life-time/p/17864436.html 个人博客-> https://zhhll.icu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~