一.super关键字的用法有三种:
1.在子类的成员方法种,访问父类的成员变量(重名或不重名)。
public class Fu3 {
int num = 10;
}
public class Zi3 extends Fu3{
int num = 20;
public void method(){
System.out.println(num); // 20 就近原则
System.out.println(super.num); // 10 父类的成员变量
}
}
2.在子类的成员方法种,访问父类的成员方法(重名或不重名)。
public class Fu3 {
int num = 10;
public void method(){
System.out.println("父类的成员方法");
}
}
public void method2(){
method(); // 就近
super.method(); // 父类
}
3.在子类的构造方法中,访问父类的构造方法。
总结:super关键字是用来在子类访问父类的内容的,this关键字是在本类的内容的。
二.this关键字的用法有三种:
1.在本类的成员方法中,访问本类的成员变量(重名或不重名)。
int num = 10;
public void method(){
int num = 20;
System.out.println(num); // 20 局部变量
System.out.println(this.num); // 10 本类的成员变量
}
2.在本类的成员方法中,访问本类的另一个成员方法。
public void methodA(){
System.out.println("AAA");
}
public void methodB(){
methodA(); // 可以直接调用
this.methodA();
System.out.println("BBB");
}
3.在本类的构造方法中,访问本类的另一个构造方法。
public Demo04Constructor() {
// super(); // 这一行不再赠送
this(123); // 这是本类的无参构造方法,调用本类的有参构造
System.out.println("无参构造方法");
}
public Demo04Constructor(int n) {
System.out.println("有参构造方法");
}
注意:
A.在第三种英法当中要注意,this(...)调用必须是构造方法的第一个且唯一的语句。
B.super和this两种构造调用,不能同时使用,因为它们都要求是唯一的第一个。
本文详细解析了Java中super关键字用于访问父类内容,包括成员变量和方法,以及this关键字在本类内部的应用,重点介绍了构造方法中正确调用的注意事项。同时,涵盖了this关键字在访问本类成员和构造方法的情况。
855

被折叠的 条评论
为什么被折叠?



