Java構造函數執行順序

  • 首先執行基類的構造函數
  • 而後執行派生類的構造函數以外的初始化語句
  • 最後執行派生類的構造函數

在Java中,若是派生類構造函數須要調用基類的構造函數,那麼基類構造函數必須做爲派生類構造函數的第一句話。在Python中,派生類調用基類的構造函數就比較靈活。java

以下代碼有一個基類Base,一個派生類Son,Son有一個成員變量Value。在建立Son對象時,執行順序爲基類的構造函數、Value的構造函數、Son的構造函數。函數

package weiyinfu.colorama;

public class Why {
class Base {
    Base() {
        System.out.println("base is called");
    }
}

class Value {
    Value() {
        System.out.println("value is called");
    }
}

class Son extends Base {
    Value v = new Value();

    Son() {
        System.out.println("son is called");
    }
}

public static void main(String[] args) {
    Why y = new Why();
    Son s = y.new Son();
}
}
相關文章
相關標籤/搜索