this关键字
参考了:https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html
Java中this
关键字通常有以下几个用法:
作为构造器中的指示隐式参数,如:
123456public class Foo {private String a;public Foo(String a) {this.a = a;}}引用同一个类中的其它构造器
1234567891011public class Foo {private String a;public Foo() {this("");}public Foo(String a) {this.a = a;}}这里默认构造起通过
this
关键字调用了另外一个构造器。
super关键字
Java中super关键字通常有以下几种用途:
调用父类的方法
123456public class Manager extends Employee {....public double getSalary() {double b = super.getSalary(); // 调用父类的getSalary方法}}在构造器中调用父类构造器方法
1234567public class Manager extends Employee {private int bonus;public Manager(String n) {super(n); // 调用父类构造器方法bonus = 0;}}需要注意的是,如果在构造器中利用super调用超类的构造器,super语句要位于方法的第一条。而且如果子类的构造器没有显示地调用超类构造器,会自动调用超类的默认构造器。如果超类没有默认构造器,子类构造器中又没有显示调用超类的构造器,那么编译器会报错。