在Java类中使用super来调用父类中指定的操作
- super可以用于访问父类中定义的属性
- super可以用于调用父类中定义的成员方法
- super可以用于在子类构方法中调用父类的构造器
注意:
- 当子、父类出现同名成员时,可以用super进行区分
- super的追溯不仅限于直接父类
super和this的用法相像,this代表本对象的引用,super代表父类的内存空间0
public class Kk extends KidKind {
public void test(){
super.salary=10000;//可以使用super向上追溯父类的父类,如果有多个层级的父类,可以一直向上追溯
super.yearsOld=28;//可以使用super直接追溯父类的成员变量
}
@Override
public void employeed() {
// TODO Auto-generated method stub
super.employeed();
System.out.println("孩子没有工作");
}
public static void main(String[] args){
Kk k1=new Kk();
k1.employeed();
}
}
调用父类的构造器
子类中所有的构造器默认都会访问父类中空参数的构造器
当父类中没有空参数的构造器时,子类的构造器必须通过this(参数列表)或者super(参数列表)语句指定调用本类或者父类中相应的构造器,且必须放在构造器的第一行
如果子类构造器中既未显示调用父类或本类的构造器,且父类中又没有无参构造器,则编译出错
this和super的区别