Java中this()與super()的區別解析
this() 的用法
- 功能:調用當前類的其他構造函數
- 作用:避免構造函數中的代碼重復
- 限制:必須是構造函數的第一條語句
- 適用場景:當類中存在多個構造函數且需要共享部分初始化邏輯時
class Car {
private String color;
private String model;
// 無參構造函數
public Car() {
this("Unknown", "Unknown"); // 調用雙參構造函數
}
// 雙參構造函數
public Car(String color, String model) {
this.color = color;
this.model = model;
}
}
super() 的用法
- 功能:調用父類的構造函數
- 作用:初始化父類成員變量
- 限制:必須是子類構造函數的第一條語句;若父類沒有無參構造函數,必須顯式調用
- 適用場景:子類需要初始化父類部分時
class Vehicle {
private String brand;
public Vehicle(String brand) {
this.brand = brand;
}
}
class Car extends Vehicle {
private String model;
public Car(String brand, String model) {
super(brand); // 調用父類構造函數
this.model = model;
}
}
關鍵區別
- this() 調用當前類的構造函數,super() 調用父類的構造函數
- 兩者都必須是構造函數的第一條語句
- this() 用于代碼復用,super() 用于父類初始化

浙公網安備 33010602011771號