1. 程式人生 > >java中子類能不能繼承父類構造方法

java中子類能不能繼承父類構造方法

    結果有些和想象中的不一樣吧。

    原因如下:其實每個子類構造方法的第一條語句,都是隱含地呼叫super(),如果父類沒有這種形式的建構函式,那麼在編譯的時候就會報錯。

    所以父類中的構造方法是不能繼承的,但是在例項化子類的時候會呼叫父類的構造方法,這樣就能解釋下面這種情況了。

面試題目1:

指出下面程式的執行結果:

public class Test {
	public static void main(String[] args) {
		A ab=new B();  //執行到此處,結果: 1a2b
		ab=new B();//執行到此處,結果: 1a2b2b
	}
}
class A{
	static {
		System.out.print("1");
	}
	public A() {
		System.out.print("2");
	}
}

class B extends A{
	static {
		System.out.print("a");
	}
	public B() {
		System.out.print("b");
	}
}
運算結果:1a2b2b