版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
super关键字
super关键字的用法有三种:
1.在子类的成员方法中,访问父类的成员变量。
2.在子类的成员方法中,访问父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。
public class Zi extends Fu {
int num = 20;
public Zi() {
super(); //访问父类构造器
}
public void methodZi(){
System.out.println(super.num); //访问父类成员变量
}
public void method() {
super.method(); //访问父类成员方法
System.out.println("子类方法");
}
}
this关键字
super关键字用来访问父类内容,this关键字用来访问本类内容。用法也有三种:
1.在本类的成员方法中,访问本类的成员变量。(当方法的局部变量和类的成员变量重名时,根据“就近原则”,优先使用局部变量)
2.在本类的成员方法中,访问本类的另一个成员方法。
3.在本类的构造方法中,访问本类的另一个构造方法。
在第三种用法当中要注意:
A. this(…)调用也必须是构造方法的第一个语句,唯一一个。
B. super和this俩种构造调用,不能同时使用。
public class Zi extends Fu {
int num = 20;
public Zi() {
this(123); //本类的无参构造,调用本类的有参构造
//this(1,2); //错误写法
}
public Zi(int n) {
this(1,2);
}
public Zi(int n,int m) {
}
public void showNum() {
int num = 10;
System.out.println(num); //局部变量
System.out.println(this.num); //本类中的成员变量
System.out.println(super.num); //父类当中的成员变量
}
public void methodA() {
System.out.println("AAA");
}
public void methodB() {
this.methodA();
System.out.println("BBB");
}
}
this和super内存图