问题描述
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);}}
解决方案
也许下面代码更有说服力:引用class Car {public Car() {super();}void run() {}class Wheel {Wheel(){System.out.println("能否运行这里?");}void round() {}}}public 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);}}
解决方案二:
我在eclipse下测试了一下,结果是Wheel类的构造方法。我的测试代码如下:引用class Car {public Car() {super();}void run() {}class Wheel {void round() {}}}public 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);}}你只要把光标放到super()方法上eclipse就会告诉你了。
解决方案三:
首先要搞清楚,继承的问题,显然,继承的是Car.Wheel,那么父类就是Wheel,这个跟是不是内部类无任何关系,至于下面的car.super();//这里怎么理解?? 这个调用,那更是跟那个扯不上半毛钱关系,传入一个Car类对象,调用它的父类构造方法,他采用的默认的,那么调用的不是就是object的吗, 这个没什么疑问的。
解决方案四:
car.super()不是调用的Object的构造方法么?这与内部类外部类有什么关系,因为这段代码里的类全都是default类型的。
解决方案五:
我倒觉得是:引用car.super();//这里怎么理解??我觉得是调用的是Wheel的构造方法。
解决方案六:
1.先弄明白没个类如果没有定义构造函数,会有一个默认的无参构造函数2.再搞清楚super是指当然类的父类
解决方案七:
引用car.super();//这里怎么理解?? 调用Car的父类的构造函数