持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情 在继承里面,当子类继承父类时,如果其构造方法为有参构造器,我们提到用关键字super()来调用具体的某个有参的构造器。 所以现在我们来仔细聊一下super的用法。
super关键字
概念:
super代表父类的引用,用于访问父类的属性、方法、构造器。
基本语法:
-
访问父类属性时,注意不能访问父类中的私有化属性
super.属性
2.访问父类的方法时,同样的注意不能访问其中私有化(private)的方法
super.方法(参数列表)
3.访问父类构造器:(只能放在构造器的第一句,也只能出现一句)
super(参数列表)
作用:
- 调用父类的构造器;
- 当子类中有和父类重名的属性和方法名时,此时想要访问父类中的属性或方法时,必须通过super;
- super的访问不仅限于直接父类,,但是当当前子类和多个基类(超类、父类)都有重名的方法或属性时,super的访问遵从就近原则。 这里大家肯定有一个想法,就是我们前面说到的this,当时我们说到“谁调用它,它就表示哪个对象”,那么用父类调用它,按理来说它和super是一样的作用--访问父类中的属性或方法,现在我们来将this和super通过对比来理解一下它们。
this与super的区别(从以下三点进行阐述):
- 访问属性: this:访问本类中的属性,如果本类中没有当前属性,则去父类中访问; super:直接去访问父类中的当前属性;
2.调用方法: this:访问本类中的方法,如果本类中没有当前方法,则去父类中访问; super:直接去访问父类中的当前方法;
3.调用构造器: this:调用本类构造器,必须放在构造方法的首行(此前有提到); super:调用父类的构造器,必须放在子类的构造器首行。 另外,this表示当前对象,而super表示子类访问父类中的对象。