1.super.成员变量名---------访问超类的成员变量
2.super.方法名()-------------调用超类的方法
3.super()-----------------------调用超类的构造方法
1.super.成员变量名
public class Person { int id; String name; } class Student extends Person{ Student(){ super.id=1;//这里写id即可 super.name="小明";//这里写name即可 } }
2.super.方法名()
public class Person {
void SingSong(){
System.out.println("唱山歌");
}
}
class Student extends Person {
void SingSong(){
super.SingSong();
System.out.println("街舞");
}
}
class Entity{
public static void main(String[] args) {
Student student = new Student();
student.SingSong();
}
}
Student中的SingSong方法要调用父类中的方法的话,直接在方法中用super去调用即可
3.super()
如果子类中没有调用超类的的构造方法,则默认super()调用超类无参构造方法
public class Person { Person() { System.out.println("落红不是无情物"); } } class Student extends Person { Student() { System.out.println("化作春泥更护花"); } public static void main(String[] args) { Student student = new Student();//输出:落红不是无情物 //化作春泥更护花 } } 虽然没有新建Person实例,但是在Student的构造方法中存在默认的super(),所以在新建Student的时候默认也去调用了Person的构造方法因此打印了父类的落红不是无情物
注意super()调用的话要写在第一行
如果父类只有有参构造,那么子类也必须要调用