类中有两个特殊变量super和this。
1. super
类声明中用关键字extends扩展了其超类之后,super用在扩展类中引用其超类中的成员变量。
public class UseSuper
{
public static void main(String[] args)
{
Manager m = newManager();
m.name = "王飞";
m.salary = 10000;
m.department = "业务部";
System.out.println(m.getSalary());
}
}
class Employee
{
public Stringname;//名字
public int salary;//薪水
//方法
public String getSalary()
{
String str;
str = "名字: " + name+ "\nSalary: " + salary;
return str;
}
}
class Manager extends Employee
{
public String department;//部门
//方法
public String getSalary()
{
//使用super变量调用超类的方法
return super.getSalary() + "\nDepartment: " + department;
}
}
2. this
this变量指向当前对象或实例。
str = "名字: " + name+ "\nSalary: " + salary;
上例中的语句可以换成下面的语句。
str = "名字: " +this.name + "\nSalary: " + this.salary;
这两者是等同的,因为在Java编程语言中,系统自动将this关键字与当前对象的变量相关联。但有一种情况例外,就是当在某些完全分离的类中调用一个方法并将当前对象的一个引用作为参数传递时。例如:
Day d = new Day(this);