super关键字的用法
先看一段代码:
class Person{
protected String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person{
private String name;
public Student(String name, String name1) {
super(name);
this.name = name1;
}
public void getInfo(){
System.out.println(this.name); //Child
System.out.println(super.name); //Father
}
}
public class Test {
public static void main(String[] args) {
Student s1 = new Student("Father","Child");
s1.getInfo();
}
}
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)
-
super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父
类。 -
super也有三种用法:
- 1.普通的直接引用,与this类似,super相当于是指向当前对象的父类的引用,这样就可以用super.xxx来引用父类的成员。
- 2.子类中的成员变量或方法与父类中的成员变量或方法同名时,用super进行区分
- 3.引用父类构造函数