構造方法 -- super()方法

class Father{
	
	public Father(int i){
		System.out.println("父類構造方法 -- Father(int i)");
	}
}

public class Child_Constrctor extends Father{

	
	public Child_Constrctor(int i ,String s) {
		//super(i);
		System.out.println("子類構造方法 -- Child_Constrctor(String s ,int i) -- )");
		// TODO Auto-generated constructor stub
	}
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}


在這段代碼中,public Child_Constrctor(int i ,String s)這行編譯器會報錯:

Implicit super constructor Father() is undefined. Must explicitly invoke another constructor

因爲在父類中已經自定義了一個帶參數的構造方法,那麼編譯器將不會給父類添加默認的無參構造方法Father(),所以此時系統無法找到父類默認無參構造方法Father()

倆種修改方法:

1.在子類構造方法中添加super(i);顯示的調用父類構造方法。

2.在父類中顯示的聲明無參構造方法:

	public Father(){
		System.out.println("父類構造方法 -- Father()");
	}

方法一修改後的代碼:

class Father{
	
	public Father(int i){
		System.out.println("父類構造方法 -- Father(int i)");
	}

	
}

public class Child_Constrctor extends Father{

	
	public Child_Constrctor(int i ,String s) {
	    super(i);//調用父類不同的構造方法
            System.out.println("子類構造方法 -- Child_Constrctor(String s ,int i) -- )");
		// TODO Auto-generated constructor stub
	}
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Child_Constrctor C = new Child_Constrctor(1,"99");
	}

}

打出來的log:

父類構造方法 -- Father(int i)
子類構造方法 -- Child_Constrctor(String s ,int i) -- )


方法二修改後的代碼:

class Father{
	
	public Father(int i){
		System.out.println("父類構造方法 -- Father(int i)");
	}
	
	public Father(){
		System.out.println("父類構造方法 -- Father()");
	}
}

public class Child_Constrctor extends Father{

	
	public Child_Constrctor(int i ,String s) {
		super(); //調用父類不同的構造方法
		System.out.println("子類構造方法 -- Child_Constrctor(String s ,int i) -- )");
		// TODO Auto-generated constructor stub
	}
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Child_Constrctor C = new Child_Constrctor(1,"99");
	}

}

打印出來的log爲:

父類構造方法 -- Father()
子類構造方法 -- Child_Constrctor(String s ,int i) -- )



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