this():呼叫同一類別內的其他建構式。
super():從子類別呼叫其父類別的建構式。
要特別注意的是:這兩種敘述都必須寫在建構子內的第一行,所以同一建構子內部不能同時存在this()和super()。另外,當建構子有多載(overloading)時,this()和super()都會根據()內的引數來判斷要呼叫哪一個建構子。
範例:
this():
class Car{
public Car(){
System.out.println("無參數的建構子");
}
public Car(int n,double gas){
this();
System.out.println("有參數的建構子");
}
}
public class Sample {
public static void main(String[] args) {
Car c1 = new Car(123,25.0);
}
}
/*
執行結果:
無參數的建構子
有參數的建構子
*/
super():
class Car{
public Car(){
System.out.println("無參數的建構子");
}
public Car(int n,double gas){
this();
System.out.println("有參數的建構子");
}
}
class RacingCar extends Car{
public RacingCar(){
super();
}
}
public class Sample {
public static void main(String[] args) {
RacingCar c1 = new RacingCar();
}
}
//執行結果: 無參數的建構子
沒有留言:
張貼留言