super关键字
super和this的使用可以对比学习;
this:
只能出现在构造方法和实例方法中。
其语法为this. 和 this()
this不能使用在静态方法中。
this.大部分情况可以省略。
this.在区分实例变量和局部变量的时候不能省略。
this()在代码复用中只能出现在构造方法的第一行,通过当前的构造方法去调用本类中的其他构造方法。
super:
只能出现在构造方法和实例方法中。
其语法为super. 和 super()
super不能使用在静态方法中。
super.大部分情况可以省略。
super的省略:父类中有的变量,子中也有,且在子中访问父的和子中同名的变量,那么必须加super。
super()在代码复用中只能出现在构造方法的第一行,通过当前的构造方法去调用父类中的其他构造方法。 目的:创建子类对象的时候,先初始化父类特征。
super() 表示通过子类的构造方法调用父类的构造方法。
模拟现实世界,要想有儿子,需要现有父亲。
重要结论:当一个构造方法的第一行,既没有this()又没有super()的话,默认会有一个super();且两者不能共存
表示通过当前子类的构造方法调用父类的无参数构造方法。因此必须保证父类的无参数构造方法是存在的。
只要存在继承,父类的构造方法是肯定会执行的。
什么时候使用super()
作用:初始化当前对象的父类型特征。
super关键字代表当前对象的那部分父类型特征。
注:java中允许出现父类和子类同名的变量
有关super的结论:
super不是引用,super也不保存内存地址。super也不指向任何对象。
super只是代表当前对象内部的那一块父类型的特征。
super的用法总结:
super.属性名 访问父类的属性
super.方法名(实参) 访问父类的方法
super(实参)子类构造方法中调用父类的构造方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通