簡體   English   中英

為什么在子類構造函數中調用“super()”?

[英]Why calling 'super()' in child class constructor?

為什么我需要在這里調用super

class Animal {
    public Animal(String arg) {
        System.out.println("Constructing an animal: " + arg);
    }
}

class Dog extends Animal {
    public Dog() {
        super("From Dog constructor");
        System.out.println("Constructing a dog.");
    }
}

如果父構造函數沒有參數,則沒有任何理由。 否則,您需要顯式調用 super(...) 來設置這些參數。

默認情況下,每個類都具有默認構造函數,即非參數化構造函數,一旦您在其上定義了任何構造函數,那么默認行為將不起作用。

另一件事是,如果任何類擴展任何其他類,那么默認情況下,子類的每個構造函數都會在內部調用其父類的默認構造函數,即 super() 但是一旦您向父類聲明參數化構造函數,則需要從子類構造函數中顯式調用它即超級(參數...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM