繼承關係下的構造器風雲

2021-07-29 05:24:30 字數 1217 閱讀 2095

早上看書重溫了下繼承關係中的構造器要求。其中對被繼承的類,就是超類的構造器要求比較多。

直接看**:

第一種情況,父類有參構造和無參構造器都在,那麼子類,就隨意了,編譯的時候可以通過。

public class fatherconstructor 

public fatherconstructor(int i)

}public class sonconstructor extends fatherconstructor

public sonconstructor(int i)

}

第二種情況,父類有無參構造器,沒有無參構造器,那麼子類有參和無參構造器都只能呼叫超類無參的構造器,否則編譯報錯。

public class fatherconstructor 

// public fatherconstructor(int i)

}public class sonconstructor extends fatherconstructor

public sonconstructor(int i)

}

第三種情況,父類有有參構造器,沒有無參構造器,要求子類構造器都必須顯式呼叫超類的有參構造器,否則編譯報錯

public class fatherconstructor 

public fatherconstructor(int i)

}public class sonconstructor extends fatherconstructor

public sonconstructor(int i)

}

第四種情況,父類構造器不寫,缺省會有乙個無參的構造器。子類要求只能呼叫父類無參構造器

public class fatherconstructor 

// public fatherconstructor(int i)

}public class sonconstructor extends fatherconstructor

public sonconstructor(int i)

}

總結:子類構造器,預設隱式呼叫父類的無參構造器。父類的構造器,缺省會有乙個隱式的無參構造器。父類構造器,如果只顯示寫乙個有參的構造器,那麼隱式的無參構造器預設就失效了。

繼承中構造方法的關係

繼承中構造方法的關係 a 子類中所有的構造方法預設都會訪問父類中空引數的構造方法 b 為什麼呢?因為子類會繼承父類中的資料,可能還會使用父類的資料。所以,子類初始化之前,一定要先完成父類資料的初始化。注意 子類每乙個構造方法的第一條語句預設都是 super class father public f...

繼承關係中的構造方法

繼承條件下構造方法的呼叫規則如下。1.如果子類的構造方法中沒有通過super顯示呼叫父類的有參構造方法,也沒有通過this顯示呼叫自身其他構造方法。則系統 會預設先呼叫自身的其他構造方法,則系統會預設先呼叫父類的無參構造方法。在這種情況下,有沒有 super 語 句,效果都是一樣的。2.如果子類的構...

繼承構造器

一 構造器 建構函式 構造方法 構造方法 構造物件的行為 格式 public 類名 引數列表 注意 任何乙個類,都會有乙個不顯性定義出來的方法 構造方法 構造方法有沒有返回值?有,返回記憶體位址 public class test 二 方法過載 定義 同一類中,定義方法名相同,引數列表不同 引數列表...