Java中的this操作方法与字段

public class Parent {

	public void init() {
		System.out.println("1 init parent");
		this.demo();
	}
	
	public void demo() {
		System.out.println("2 demo parent");
	}

}


public class Son extends Parent {
	
	public void init(){
		super.init();
		System.out.println("3 init son");
		this.demo();
	}
	
	public void demo() {
		System.out.println("4 demo Son");
	}
	
	public static void main(String[] args) {
		//当前运行类 Son
		Son son = new Son();
		son.init();  //init(son)
		
	}

}

输出结果是:

1 init parent
4 demo son
3 init son
<pre name="code" class="java">4 demo son



操作方法时,this是指当前运行类,在这里就是指son;



第二个例子:

public class Parent {
	
	public String name="tom";

	public void init() {
		System.out.println(this.name);
	}
	
}

public class Son extends Parent {
	
	public String name="jack";
	
	public void init(){
		super.init();
		System.out.println(this.name);
	}
	
	public static void main(String[] args) {
		//当前运行类 Son
		Son son = new Son();
		son.init();  //init(son)
		System.out.println("## " + son.name);
		
		Parent p = new Son();
		System.out.println("** " + p.name);
		
	}

}


输出结果是:
tom
jack
## jack
** tom

操作字段时,是不能像方法一样覆盖的,this是谁的就是谁的。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。