this 和 super關鍵字

this和super關鍵字,其用法非常的相似。super用來代表父類,而this用來代表本類。

this()用於調用本類的構造。

super()用來調用父類的構造,必須出現在構造當中的第一行。

this. 用來調用本類的屬性和方法,可以出現在在非static的部分。super.用來調用父類已經父類繼承而來的的屬性和方法,出現在非static部分。

如果this.出現在構造當中,代表正在構造或者即將構造成功的對象;如果出現在方法當中,代表該方法的調用對象,在不重名的情況下,this可以省略。this()不能用來自己調用自己。

public class Sub extends Super{
	public Sub(){                          //3
		super(3);                            //4
		System.out.println("sub1");          //7
	}
	public Sub(int a){                     //2
		this();                              //3
		System.out.println("sub2");          //8
	}
	public Sub(int a, String b){           //1
		this(a);                             //2
		System.out.println("sub3");          //9
	}
	public static void main(String[] args){
		new Sub(5,"aa");                   //1
	}
}
public class Super {
	private String b;
	private int a;
	public Super(){
		this(10, "superman");
		System.out.println("super1");
	}
	public Super(int a){                 //4
		this(a,"");                        //5
		System.out.println("super2");      //6
	}                                    //6
	public Super(int a, String b){       //5
		//等同於寫了super();由於其父類已經是object,所以沒有執行什麼動作
		System.out.println("super3");//5
		this.a = a;                 //5
		this.b = b;                 //5
	}
}


 

發佈了76 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章