Java中super关键字有以下用处
1.super表示调用父类方法
1)调用父类构造方法
使用方法:super(参数列表)
如果子类中调用父类无参构造时,super()可以不写;子类调用父类有参构造时,必须要写,告知编译器调用的是哪个父类的构造,而且要写在构造方法的第一句。
class Person{
public String name;
public Person(String name){
this.name = name;
}
}
class Student extends Person{
public Student(){
super("Tom");
}
}
public class Test{
public static void main(String[] args) {
System.out.print(new Student().name);
}
}
注意:super与this在构造方法中不能同时存在,即子类不存在构造方法的互相调用。
2.super调用父类普通方法
用法:super.方法名(参数列表)
class Person{
public void print(){
System.out.println("Person类的输出");
}
}
class Student extends Person{
public void print(){
super.print();
System.out.println("Student类的输出");
}
}
public class Test{
public static void main(String[] args) {
new Student().print();
}
}
2.super表示调用父类属性。(了解)
class Person{
public String info = "爸爸!";
}
class Student extends Person{
public String info = "儿子!" ;
public void print(){
//不找本类中的属性
System.out.println(super.info);
System.out.println(this.info);
}
}
public class Test{
public static void main(String[] args) {
new Student().print();
}
}
super和this在使用上非常的相似,但是两者最大的区别是super是子类访问父类的操作,而this
是本类的访问处理操作。