java 隱式呼叫和顯示呼叫
阿新 • • 發佈:2019-02-01
當我們在呼叫類的構造器來建立物件的時候,首先要呼叫的是父類的非靜態的初始化塊,接著會呼叫構造器,但是父類的構造器可能有多個,也就是過載,當呼叫完父類的非靜態初始化塊之後,將會呼叫的是當前類的非靜態初始化塊然後是自身的建構函式,呼叫父類的建構函式就有兩種呼叫的方式,一個是顯示呼叫,另一個是隱式呼叫,下面通過程式碼來說一下這兩者間的區別。
class Person { public Person (){ } public Person (String name){ system.out.println(name); } } class Student extends Person { public Student{ super ("IT90s最前線"); } public Student{ this(); } public Student{
}
}
瞭解了這段程式碼的輸出情況,你也就是了解了顯示呼叫和隱式呼叫,這裡出現的關鍵字super,super呼叫用於顯示呼叫父類的構造器,this則用來顯示呼叫本類中的另一個過載的構造器,這兩種構造器只能在構造器中使用,而且出現在建構函式的第一行程式碼中,因此構造器中兩種關鍵字只能用其中一個,而且每個只能呼叫一次。