深入學習java建構函式

來源:互聯網
上載者:User

*來自對建構函式的繼承,及相關調用思考得到,主要還是從《java物件導向編程》得來

*在多級繼承的情況下,將從繼承樹的最上層的父類開始,依次執行各個類的構造方法,

這可以保證子類對象從所有直接或間接父類中繼承來的執行個體都被正確的初始化。

*當子類的構造方法沒有用super語句顯示的調用父類的構造方法,而父類中又沒有提供默

認的構造方法(jdk提供的預設構造方法)時,將會出現編譯錯誤。

public class Grapha {
  // public Grapha() {
// System.out.println("Grapha()");
// }
  public Grapha(String name) {
 System.out.println("Grapha()");
}
}
  class Father extends Grapha{
  /**
* a compile error happen.
* implicit super constructor Grapha() is undifined,must explicity invoke another constructor
**/
public Father() {
 System.out.println("Father()");
}
/**
* a compile error happen.
* implicit super constructor Grapha() is undifined,must explicity invoke another constructor
**/
public Father(String name){
}
}

*從上面可以得出,如果一個類即不允許其他程式員用new語句來構造它的執行個體,又不允許它有子類,就可以

把它所有的構造方法定義為private的。

另外一種使一個類不能有子類的方法是將類聲明改為final的。

由上面可以想到用靜態原廠模式:

*單例模式(singleton)

*枚舉類

*具有執行個體緩衝的類

*具有執行個體緩衝的不可變類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.