1. super关键字代表父类中的内容
2. this代表子类中的内容
3. 可以用super和this区分父类和子类中重名的变量 重点!
父类:
public class Hero {
String name="英雄";
public Hero(String name) {
this.name = name; //父类构造方法传参
System.out.println("父类构造方法");
}
}
子类:
public class Wukong extends Hero{
String name = "大圣";
public Wukong() {
// super(); 默认的样子,还原程序,在子类构造方法调用的第一行,默认调用父类的构造方法
super("华晨宇"); //若父类构造方法传参,则不能使用默认的super()
System.out.println("子类构造方法");
}
public void chi() {
System.out.println(this.name+"吃桃子"); //子类变量
System.out.println(super.name+"吃桃子"); //父类变量,super可以区分父类子类变量
}
public static void main(String[] args) {
Wukong wk = new Wukong();
wk.chi();
}
}
总结:
1. super可以获取到父类中的内容
2. super可以调用父类的构造方法,必须写在子类构造方法的第一行
如果父类构造方法是无参数的,可以不写super(),java会默认分配
如果父类构造方法你自己定义传参了,那必须写super