【Java基础】关键字super
1.super
- super关键字表示父类的,可以在子类中使用super关键字调用父类的属性、方法、构造器。通常情况下可以省略super。
- 当子类和父类中定义了同名的属性时,子类中使用
super.属性
调用父类中的属性。 - 当子类重写了父类中的方法后,子类中使用
super.方法
调用父类中的方法。
2.super调用构造器
- 在子类中使用
super(形参列表)
调用父类中指定的构造器。 super(形参列表)
必须声明在子类构造器中的首行。- 在类的构造器中,
this(形参列表)
或super(形参列表)
只能二选一,不能同时出现(因为这俩都要求在首行)。 - 在构造器中,没有使用
this(形参列表)
或super(形参列表)
则默认为super()
调用父类中的空参构造器。
3.为什么要放在首行
- 构造器的作用是创建对象和对象初始化,放在第一行保证父类对象先创建初始化。
- 构造函数只能被构造函数调用,对象只会初始化一次。
- 同时使用
super()
和this()
则会创建两个相同对象(this()
->该类构造器->父类构造器)
4.this和super的区别
区别点 | this | super |
---|---|---|
访问属性 | 访问本类中的属性,如果本类没有此属性则从父类中继续查找 | 直接访问父类中的属性 |
调用方法 | 调用本类中的方法,如果本类中没有此方法则从父类中继续查找 | 直接访问父类中的方法 |
调用构造器 | 调用本类构造器,必须放在构造器首行 | 调用父类构造器,必须放在子类构造器首行 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本