super、this关键字的三种用法

1 public class Fu {
2 
3     int num = 10;
4 
5     public void method() {
6         System.out.println("父类方法");
7     }
8 
9 }
 1 /*
 2 super关键字的用法有三种:
 3 1. 在子类的成员方法中,访问父类的成员变量。
 4 2. 在子类的成员方法中,访问父类的成员方法。
 5 3. 在子类的构造方法中,访问父类的构造方法。
 6  */
 7 public class Zi extends Fu {
 8 
 9     int num = 20;
10 
11     public Zi() {
12         super();
13     }
14 
15     public void methodZi() {
16         System.out.println(super.num); // 父类中的num
17     }
18 
19     public void method() {
20         super.method(); // 访问父类中的method
21         System.out.println("子类方法");
22     }
23 
24 }

 

1 public class Fu {
2 
3     int num = 30;
4 
5 }
 1 /*
 2 super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种:
 3 
 4 1. 在本类的成员方法中,访问本类的成员变量。
 5 2. 在本类的成员方法中,访问本类的另一个成员方法。
 6 3. 在本类的构造方法中,访问本类的另一个构造方法。
 7 在第三种用法当中要注意:
 8 A. this(...)调用也必须是构造方法的第一个语句,唯一一个。
 9 B. super和this两种构造调用,不能同时使用。
10  */
11 public class Zi extends Fu {
12 
13     int num = 20;
14 
15     public Zi() {
16 //        super(); // 这一行不再赠送
17         this(123); // 本类的无参构造,调用本类的有参构造
18 //        this(1, 2); // 错误写法!
19     }
20 
21     public Zi(int n) {
22         this(1, 2);
23     }
24 
25     public Zi(int n, int m) {
26     }
27 
28     public void showNum() {
29         int num = 10;
30         System.out.println(num); // 局部变量
31         System.out.println(this.num); // 本类中的成员变量
32         System.out.println(super.num); // 父类中的成员变量
33     }
34 
35     public void methodA() {
36         System.out.println("AAA");
37     }
38 
39     public void methodB() {
40         this.methodA();  //this起一个强调的作用
41         System.out.println("BBB");
42     }
43 
44 }

 

posted @ 2020-11-01 17:28  Oooooooa  阅读(119)  评论(0)    收藏  举报