代碼如下:
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
car.super(); // 這句什么意思?為什么要這樣寫?
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
調(diào)用的是 Car.Wheel 的構(gòu)造器
因?yàn)?你這個(gè)類,是集成自 Car.Wheel而不是 Car.
同樣,因?yàn)槟悴皇菃渭兊募勺覹heel,所以你必須有一個(gè)Car的實(shí)例,因?yàn)閃heel屬于Car。
以下的幾種情況都是錯(cuò)誤的
class Car {
class Wheel {
Wheel(int id) { // 不再有默認(rèn)無(wú)參數(shù)構(gòu)造器
}
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
car.super(); // 這里會(huì)出現(xiàn)編譯錯(cuò)誤
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
不寫調(diào)用
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) { // 不寫調(diào)用,也會(huì)出現(xiàn)編譯錯(cuò)誤
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
super();// 單純的super,同樣是錯(cuò)誤的
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
car.super(); // 這句什么意思?為什么要這樣寫?
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
調(diào)用的是 Car.Wheel 的構(gòu)造器
因?yàn)?你這個(gè)類,是集成自 Car.Wheel而不是 Car.
同樣,因?yàn)槟悴皇菃渭兊募勺覹heel,所以你必須有一個(gè)Car的實(shí)例,因?yàn)閃heel屬于Car。
以下的幾種情況都是錯(cuò)誤的
class Car {
class Wheel {
Wheel(int id) { // 不再有默認(rèn)無(wú)參數(shù)構(gòu)造器
}
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
car.super(); // 這里會(huì)出現(xiàn)編譯錯(cuò)誤
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
不寫調(diào)用
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) { // 不寫調(diào)用,也會(huì)出現(xiàn)編譯錯(cuò)誤
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}
class Car {
class Wheel {
}
}
class PlaneWheel extends Car.Wheel {
PlaneWheel(Car car) {
super();// 單純的super,同樣是錯(cuò)誤的
}
public static void main(String[] args) {
Car car = new Car();
PlaneWheel pw = new PlaneWheel(car);
}
}