java繼承關係下執行順序

為不為發表於2019-01-02
public class test {
	public String s="test";
	{
		System.out.println("--父類非靜態程式碼塊--");
	}
	public test() {
		System.out.println("--父類建構函式--");
		call();
	}
	public void call() {
		System.out.println(s);
	}
	static class Sub extends test {
		public String s;
		{
			s="sub";
			System.out.println("--子非靜態程式碼塊--");
		}
		public Sub() {
			System.out.println("--子類建構函式--");
		}
		public void call() {
			System.out.println(s);
		}
	}
	public static void main(String[] args) {
		test t=new Sub();
	}
	}
--父類非靜態程式碼塊--
--父類建構函式--
null
--子非靜態程式碼塊--
--子類建構函式--

相關文章