子類調用父類構造器的幾種情況

在調用子類構造器之前,會先調用父類構造器,當子類構造器中沒有使用"super(參數或無參數)"指定調用父類構造器時,是默認調用父類的無參構造器,如果父類中包含有參構造器,卻沒有無參構造器,則在子類構造器中一定要使用“super(參數)”指定調用父類的有參構造器,不然就會報錯。

示例:
由於父類Base沒有無參構造器,所以Derived必須顯式地調用Base的有參構造器,不然會報錯。

class Base{
    public Base(String s){
        System.out.print("B");
    }
}
public class Derived extends Base{
    public Derived (String s) {
    	//正確的方式需要添加一行:
    	//super(s);
        System.out.print("D");
    }
    public static void main(String[] args){
        new Derived("C");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章