日期:2014-05-20  浏览次数:20719 次

继承个有内部类的类,构造函数怎么写?
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