关于this关键字

首先看一下这篇博客介绍:http://blog.csdn.net/ccpat/article/details/44515335

 

下面贴段代码

 1 package com.xujingyang.test;
 2 
 3 public class Demo {
 4     public static void main(String[] args) {
 5         Fu f = new Zi();
 6         
 7         System.out.println(f.num);//这里定义的是父类,而成员变量没有多态,所以即使你new的子类,依然指向父类的成员变量。
 8         System.out.println(f.fun1());//不解释了,就是多态。
 9         f.show();
10         System.out.println(f.getClass());
11     }
12 }
13 
14 class Fu {
15     public String num = "父类成员变量";
16 
17     public void show() {
18         System.out.println(this.num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
19         System.out.println(this.fun1());//因为方法有多态,所以this指向new对象的方法。
20     }
21     
22     public String fun1() {
23         System.out.println(this.num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
24         return "父类调用";
25     }
26 }
27 
28 class Zi extends Fu {
29     public String num = "子类成员变量";
30     
31     public String fun1() {
32         System.out.println(this.num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
33         return "子类调用";
34     }
35 }

 

结果:

 

posted @ 2015-03-22 14:18  oldmonk  阅读(161)  评论(0编辑  收藏  举报
Fork me on GitHub