java学习--构造方法
构造方法的作用:创建对象并初始化对象
定义规则:构造方法名与类名相同且没有返回值。(构造方法不需要设置返回值类型,包括void)
在没有定义构造方法是,编译器会自动为类添加形如 类名 () {} 的构造方法
继承类(子类)的构造方法
子类的构造方法中必须调用其父类的构造方法(显示的调用或者默认调用无参的父类构造方法)
如果子类的构造方法中没有显示的调用父类的构造方法,则系统会默认调用父类的无参数构造方法
如果子类的构造方法中没有显示的调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错
子类的构造方法可以使用 super(argument_list) 来显示的调用父类的构造方法,且必须写在子类构造方法的第一行
可以使用this(argument_list) 来调用本类其他的构造方法
加深理解
1.如果子类和父类都没有定义构造方法,则编译器会为父类和子类都自动添加 类名() {} 的无参构造方法
而子类创建对象时,就是使用编译器为子类自动添加的构造方法,子类的构造方法会自动调用编译器为父类自动添加的无参构造方法
2.如果父类中定义了一个有参的构造方法,则编译器不会为父类自动添加无参的构造方法
如果子类没有定义构造方法,或者子类中定义了构造方法,但没有显示的调用父类的构造方法,则会编译出错。
因为此使子类需要默认调用父类的无参构造方法,而父类中却没有无参的构造方法,所以编译出错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)