super
是Java中的一个关键字,它可以用来引用当前对象的父类(超类)的成员变量或方法。主要有以下用途:
- 访问父类的成员变量:
- 当子类和父类中有同名的成员变量时,可以使用
super
关键字来访问父类的成员变量。
class Parent { int x = 10; } class Child extends Parent { int x = 20; void display() { System.out.println(x); // 输出子类的x,即20 System.out.println(super.x); // 输出父类的x,即10 } }
- 调用父类的构造方法:
- 在子类的构造方法中,可以使用
super
来调用父类的构造方法。
class Parent { int x; Parent(int x) { this.x = x; } } class Child extends Parent { int y; Child(int x, int y) { super(x); // 调用父类的构造方法 this.y = y; } }
- 访问父类的方法:
- 当子类和父类中有同名的方法时,可以使用
super
关键字来调用父类的方法。
class Parent { void display() { System.out.println("Parent"); } } class Child extends Parent { void display() { super.display(); // 调用父类的display方法 System.out.println("Child"); } }
- 在子类构造方法中调用父类的构造方法:
- 当子类的构造方法中没有使用
super
来调用父类的构造方法时,会默认调用父类的无参构造方法。
class Parent { int x; Parent(int x) { this.x = x; } } class Child extends Parent { int y; Child(int y) { this.y = y; // super(); // 默认调用父类的无参构造方法 } }
总的来说,super
关键字可以用于在子类中访问父类的成员、调用父类的构造方法以及调用父类的方法,从而实现对父类的重用。