super意思
super 子类从父类继承来的那部分代名词,不是对象,是子类实例对象的一部分,super是this的一部分
在构造函数中使用
子类的构造函数中super(),就是调用父类的构造函数,本质和调用一个普通函数一样,只不过这个构造函数隐含了,
如没有写super(),系统自动分配,注意只是调用父类的构造函数,用于给子类添加父类的属性并初始化,此步走是在创建子类对象是进行的,调用父类构造函数并不是创建父类实例对象。
super主要在构造函数中使用。用于调用父类的那个构造函数。
super 只能出现在子类构造函数的第一行,
class Father {
int id;
String name;
public Father() {
this.id = 10;
}
public Father(int a) {
this.id = a;
}
public void chi() {
System.out.println("chi");
}
}
class Son extends Father {
public Son() {
super(128);
super.name="shide";
super.chi();
}
}
省略
this在类中,大部分可以省略,只在方法中区分实例对象属性和方法中的局部变量,不能省略
super 在父类中有一个变量,在子类中又声明了同名变量,在子类中访问父类中该同名属性,不能省略。“就近原则”,super()其实就是调用的父类的构造函数,也相当于一个普通函数,区分实例变量与函数中的局部变量一样。