this,super两个关键字用来指代类,this指代本类,super指代父类。
对于一个类来说,它可以继承父类所有可继承的方法和数据成员,但是任何一个类都不能继承父类的构造方法。然而在子类的构造方法中却可以使用super调用父类的构造方法。
注意:若要在子类的构造方法中调用父类的构造方法,则在子类构造方法中的第一条语句就要用super调用,否则会报错。
一个super的例子:
class Employee
{
private String name;
private int age;
private double salary = 3000;
public void displayInfo()
{
System.out.println("name = " + name + " age = " +age);
}
public Employee(String name, int age, double salary)
{
this.name = name;
this.age = age;
this.salary = salary;
}
public double getSalary()
{
return salary;
}
}
class Manager extends Employee
{
private double bonus;
private String position;
public Manager(String name, int age, double salary, String position) {
super(name, age, salary); //构造方法中第一条语句要用super关键字调用
this.position = position;
super.displayInfo();
}
public void setBonus()
{
this.bonus = bonus;
}
}
public class TestManager {
public static void main(String[] args) {
Manager a = new Manager("詹亮",25, 3000, "经理");
System.out.println("工资为:" + a.getSalary());
}
}
运行结果:
name = 詹亮 age = 25
工资为:3000.0