继承个有内部类的类,构造函数怎么写?
class Car
{
class Wheel
{
}
}
class PlaneWheel extends Car.Wheel
{
PlaneWheel(Car car)
{
car.super(); // 这句怎么理解?调用 car 的父类构造函数? 调用Object 构造函数?!
}
public static void main(String[] args)
{
Car car=new Car();
PlaneWheel pw=new PlaneWheel(car);
}
}
------解决方案--------------------super:调用父类具有相同形参的构造函数
------解决方案-------------------- 调用Car.Wheel的构造函数
只能且必须用car.super(),而不能用super(),或忽略不写。
------解决方案--------------------直接理解为继承父类
调用父类的构造函数
------解决方案--------------------关注
------解决方案-------------------- greathawker() ( ) 信誉:100 Blog 加为好友 2007-5-11 16:26:07 得分: 0
调用Car.Wheel的构造函数
只能且必须用car.super(),而不能用super(),或忽略不写。
**************************************************
刚做了测试,确实调用Car.Wheel的构造函数,但难以理解。
------解决方案--------------------汗,测试还不容易..你手动建一个无参数的构造器就是.....
------解决方案--------------------被你们搞得晕头转向了,好像java 版没有像.net版的孟子E章那种高手兼热心人啊.
------解决方案--------------------class Car
{
public Car(){
System.out.println( "Car ");
}
class Wheel{
public Wheel(){
System.out.println( "Wheel ");
}
}
}
public class PlaneWheel extends Car.Wheel{
PlaneWheel(Car car){
car.super();
System.out.println( "PlaneWheel ");
}
public static void main(String[] args){
Car car=new Car();
PlaneWheel pw=new PlaneWheel(car);
}
}
------------------------
结果:
Car
Wheel
PlaneWheel
------解决方案--------------------java中让人摸不透的东西之一.
为什么这里是用super而不是用child