super关键字

举报
@小红花 发表于 2022/02/25 16:25:08 2022/02/25
【摘要】 super是一个关键字,全部小写。super和this对比着学习。 this:this能出现在实例方法和构造方法中。this的语法是:this. 和this()this不能使用在静态方法中。this.大部分情况下是可以省略的。this.什么时候不能省略呢?在区分局部变量和实例变量的时候不能省略。public void setName(String name){this.name = name...

super是一个关键字,全部小写。

superthis对比着学习。

 

this

this能出现在实例方法和构造方法中。

this的语法是:this. this()

this不能使用在静态方法中。

this.大部分情况下是可以省略的。

this.什么时候不能省略呢?在区分局部变量和实例变量的时候不能省略。

public void setName(String name){

this.name = name;

}

this() 只能出现在构造方法中的第一行,通过当前得到构造方法来调用本类中其他的构造方法,目的是:代码复用。

 

super

super能出现在实例方法和构造方法中。

super的语法是:super. super()

super不能使用在静态方法中。

super.大部分情况下是可以省略的。

super.什么时候不能省略呢?父类中有一个变量,子类也有一个相同的变量,

如果想在子类中访问父类的特征,super不能省略

super() 只能出现在构造方法中的第一行,通过当前得到构造方法来调用父类中的构造方法,目的是:创建子类对象的时候,先初始父类型特征。

 

super()

表示通过子类的构造方法调用父类的构造方法。

模拟现实世界中的这种场景:想要有儿子,需要现有父亲。

 

当一个构造方法第一行:

既没有this()又没有super()的话,默认会有一个super();

表示通过当前子类的构造方法调用父类的无参数构造方法。

所以必须保证父类的无参数构造方法是存在的。

 

注意:

this()super()不能共存,他们都是只能出现在构造方法第一行。

 

无论是怎样折腾,父类的构造方法是一定会执行的。

java语言中不管是什么对象,最后object类的无参数构造总方法一定会执行的。

object类中的无参数构造方法一定是最先执行的。

 

大家要注意:

以后写代码的时候,一个类的无参数构造方法还是建议大家手动的写出来的。

如果无参数的构造方法丢失的话,可能会影响到子类对象的创建。

 

super.不仅可以访问属性,也可以访问方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。