super关键字
super是一个关键字,全部小写。
super和this对比着学习。
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.不仅可以访问属性,也可以访问方法。
- 点赞
- 收藏
- 关注作者
评论(0)