java内部类继承问题

请看代码:classCar{classWhell{}}classCarWhellextendsCar.Whell{CarWhell(Carc){c.super();}pu... 请看代码:
class Car
{
class Whell
{
}
}

class CarWhell extends Car.Whell
{
CarWhell(Car c)
{
c.super();
}
public static void main(String[] args)
{
Car c=new Car();
CarWhell cw=new CarWhell(c);
}
}
其中为什么要给CarWhell参数,不用参数 直接实例化Car行吗?为什么?
c.super()是什么意思,他调用谁的构造方法,如果调用Car的话 为什么不直接用super()?谢谢
展开
 我来答
njrji40
2010-11-26 · TA获得超过652个赞
知道小有建树答主
回答量:572
采纳率:0%
帮助的人:405万
展开全部
首先你要理解什么是引用:
String str = new String("haha");
这里的str不是一个实例,实例是"haha",str只是这个实例的内存地址的引用
如果执行str = "HAHA";并不是用HAHA覆盖原来的实例haha这时候haha仍然存在在内存中(一段时间后他会被垃圾回收机制回收),只是str这个被声明为String类型的引用指向了新的地址(HAHA的地址);
现在明白了,变量就是一个引用,引用是什么.那么再来看super关键字会明白许多.

说实话我没看懂你的程序,而且刚刚4了下,程序是有问题的o.super;这是什么?我都不知道,编译都要出错......
super关键字就是对父类的直接引用.
比如class A{
int a;
void setA(int a){
this.a = a
}
int getA(){
return a;
}
}
class B extends A{
int a;
B(){
super();//调用父类的构造方法
}
void setA(){
this.a = super.getA();//引用父类的getA()方法
}
void setBack(){
super.a = this.getA();//super.a引用父类中的变量a,this.getA();引用本类的getA()方法
}
int getA(){
return a;//返回本类中的变量a;
}
int getSuperA(){
return super.a;//返回父类中的变量a;
}
}
百度网友67d2951
2010-11-19 · TA获得超过936个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:155万
展开全部
给CarWhell参数是为了调用类CarWhell中的构造方法CarWhell(Car c){c.super();}

不用参数 直接实例化Car是不行的。

当Java虚拟机执行代码Car c=new Car()时会自动调用类Car中隐藏的构造方法Car(){}。

当执行代码CarWhell cw=new CarWhell(c)时会自动调用类CarWhell中的构造方法CarWhell(Car c){c.super();},执行构造方法中的代码c.super(),调用父类Object中的构造方法Object(){}。

super()是调用父类的构造方法,Car的父类是Object类。

这段代码没什么错误,但也没什么意义。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式