一、this
理解为一个变量,表示当前方法调用者的地址值
1、访问成员变量
this.成员变量
2、访问成员方法
this.成员方法(...)
3、访问构造方法
this(...)
例:
public class Student{
String name;
int age;
String school;
public Student(){
//表示调用本类其他构造方法
//细节:虚拟机就不会再添加super();
this(null,0,"牛马大学"); //默认学校为牛马大学
this.method(); //调用成员方法
}
public Student(String name,int age,String school){
this.name = name;
this.age = age;
this.school = school;
}
public void method(){
System.out.println("成员方法");
}
}
二、super
代表父类存储空间,也就是说去父类里寻找。
1、访问成员变量
super.成员变量
2、访问成员方法
super.成员方法(...)
3、访问构造方法
super(...)
例:
public class Father{
String name;
public Father(){}
public Father(String name){
this.name = name;
}
public void method(){
System.out.println("Father method ...");
}
}
public class Son extends Father{
String name;
public Son(){}
public Son(String name){
super(name); // 调用父类构造方法
}
@Override
public void method(){
System.out.println("Son method ...");
super.method(); // 调用父类的成员方法
System.out.println(super.name); // 调用父类的成员变量
}
}