Java中this和super的区别和应用

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
posted @ 2018-02-14 23:30  黑泽君  阅读(240)  评论(0编辑  收藏  举报