Java中this和super的区别和应用
1 /*
2 问题是:
3 1.我不仅仅要输出局部范围的变量num,还要输出本类成员范围的变量num。怎么办呢?
4 2.我还想要输出父类成员范围的变量num。怎么办呢?
5 如果有一个东西和this相似,但是可以直接访问父类的数据就好了。
6 恭喜你,这个关键字是存在的:super。
7
8 this和super的区别?
9 分别是什么呢?
10 this代表本类对应的引用。
11 super代表父类存储空间的标识(可以理解为父类的引用,可以操作父类的成员,但不是父类的对象!)
12
13 怎么用呢?
14 A:访问成员变量
15 this.成员变量 调用本类的成员变量
16 super.成员变量 调用父类的成员变量
17 B:访问构造方法(在子父类的构造方法问题讲)
18 this(...) 调用本类的构造方法
19 super(...) 调用父类的构造方法
20 C:访问成员方法(在子父类的成员方法问题讲)
21 this.成员方法 调用本类的成员方法
22 super.成员方法 调用父类的成员方法
23 */
24
25 class Father {
26 public int num = 10;
27 }
28
29 class Son extends Father {
30 public int num = 20;
31
32 public void show() {
33 int num = 30;
34 System.out.println(num);
35 System.out.println(this.num);
36 System.out.println(super.num);
37 }
38 }
39
40 class ExtendsDemo5 {
41 public static void main(String[] args) {
42 Son s = new Son();
43 s.show();
44 }
45 }
输出的结果为:
30
20
10