java基礎:繼承中的構造方法規則

十五樓亮哥發表於2015-02-01

一:相關規則

1)子類的構造過程中必須呼叫父類的構造方法
(2)子類可以在自己的構造方法中使用super(argumentList)來呼叫父類的構造方法;
 使用this(argumentList)呼叫本類的其他構造方法
 如果使用super(argumentList)來呼叫父類的構造方法,必須寫在子類構造方法的第一行。
(3)如果子類的構造方法中沒有明確地呼叫父類的構造方法,則預設呼叫無參的構造方法。相當於在子類構造方法中預設執行super()
  (4)如果子類構造方法中,即沒有顯示地呼叫父類的構造方法,而基類中也沒有無參的構造方法,則編譯不通過。

二:看一個例子

public class SuperClass {
	private int n;
	public SuperClass() {
		System.out.println("SuperClass");
	}
	
	public SuperClass(int n) {
		System.out.println("SuperClass ---n = "+n);
		this.n = n;
	}

}


public class SubClass extends SuperClass{
	private int n;
	public SubClass(int n) {
		//super();
		System.out.println("SubClass  n ="+ n);
		this.n = n;
	}
	
	SubClass(){
		super(100);
		System.out.println("SubClass");
		
	}
}

public class Test {
	public static void main(String[] args) {
 	//SubClass sc = new SubClass();
	 SubClass sc = new SubClass(400);
	}

}

執行結果:

SuperClass
SubClass  n =400

相關文章