我一直認爲使用子類創建對象時,我們需要明確地使用super(arguments list)
來調用超類的構造函數。但是,我做了一個實驗,並意識到,即使使用super()
而不是,即使,超類的構造函數也會自動調用。這是真的?在這種情況下調用super的構造函數是多餘的嗎?
如果這是真的,什麼時候是super()
冗餘,什麼時候不是?
class Parent
{
public Parent()
{
System.out.println("Super Class");
}
}
class Child extends Parent
{
public Child()
{
super(); //Is this redundant?
System.out.println("Sub Class");
}
}
public class TestClass
{
public static void main(String[] args)
{
new Child();
}
}
OUTPUT(隨着在子類):
Super Class
Sub Class
OUTPUT(沒有在子類):
Super Class
Sub Class
超級存在隱藏即使您不要調用 – 2014-10-08 18:54:19
當您需要將參數傳遞給它時,您必須調用super()構造函數,否則如果不調用它,不會調用不帶參數的super()。 – 2014-10-08 18:55:26
所以我們明確地調用超類的構造函數中有參數的時候嗎? – user3437460 2014-10-08 18:55:46