回覆列表
  • 1 # lydkg11575

    是的。因為你呼叫子類其他構造方法,其他的構造方法會用super繼續呼叫父類的構造方法,來初始化父類的成員變數。貼上別人的一句話:因為子類繼承父類,會繼承到父類中的資料,所以必須要看父類是如何對自己的資料進行初始化的。所以子類在進行物件初始化時,先呼叫父類的建構函式,這就是子類的例項化過程。我還想說一下,子類建立物件,也就是呼叫構造方法,執行過程中必須先呼叫父類的構造方法,因為你要繼承父類的成員變數,你父類的成員變數還沒透過父類的構造方法初始化,你繼承什麼呢?所以要想執行子類的構造方法,不論有參無參,都要執行父類的構造方法,來初始化父類的成員變數。比如說:父類的構造是這樣的public Father() {}public Father(String name, int age) {this.name = name;this.age = age;}父類只有name和age兩個成員變數Son類的構造方法是這樣的:public Son() { super();//這句可以沒有,因為父類寫了father()空參構造,這裡不寫super會自動呼叫父類空參構造;也可以寫成super("爸爸",48);,因為父類也存在這個構造方法也能初始化父類的成員變數,但一般沒這麼用的。 System.out.println("子類空參構造方法"); } public Son(String like) {//like是子類特有的成員變數 super();//這裡跟上面一樣,可寫可不寫,也可寫super("爸爸",48); this.like = like; System.out.println(like); }再有如果父類沒有空參構造也就是沒有public Father() { }那麼子類的建構函式必須寫super,而且是帶引數的,比如super("爸爸",48);,如果父類還有其他的構造方法也可以寫super(引數1,引數2...),作用就是初始化父類的成員變數

  • 中秋節和大豐收的關聯?
  • 請問剛買了的白水晶到底要怎麼消磁啊?