黑马程序员技术交流社区
标题:
关于继承中的一个问题,细节!
[打印本页]
作者:
bushangkoukou
时间:
2013-6-4 19:39
标题:
关于继承中的一个问题,细节!
本帖最后由 bushangkoukou 于 2013-6-5 16:11 编辑
class Fu
{
Fu()
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu...****..."+x);
}
}
class Zi extends Fu
{
Zi()
{
//super();
System.out.println("zi run");
}
Zi(int x)
{
super(x); //问题是这里为什么只能写super(x)而不能写super(int x)??????
System.out.println("zi..."+x);
}
}
class ExtendsDemo2
{
public static void main(String[] args)
{
Zi z = new Zi();
Zi z1= new Zi(4);
}
}
作者:
飞鸟青崖
时间:
2013-6-4 19:42
super(x)就是相当于调用一个函数,你见过调用函数的时候还要传入int吗?
作者:
神之梦
时间:
2013-6-4 19:48
super代表的是父类的对象的引用,就像正常定义一个对象一样
如定义父类对象:Fu f=new Fu(x);
就没有写错new Fu(int x);的写法吧
对于super()就同理了
作者:
闫月乐
时间:
2013-6-4 19:52
汗,我又来了
class Fu
{
Fu()
{
System.out.println("fu run");
}
//这里定义的数接收的是子类中super传递的值,故可以定义成任何变量名.
Fu(int y)
{
System.out.println("fu...****..."+y);
}
}
class Zi extends Fu
{
Zi()
{
//super();
System.out.println("zi run");
}
Zi(int x)
{
super(x); //问题是这里为什么只能写super(x)而不能写super(int x)??????
/*
new Zi(4)=>Zi(int x)
|
super(x)=>Fu(int x)
建立Zi(4)对象后,将4作为实际参数传给子类构造函数中的x,之后x传递给super中的x
super(x)就相当于Fu(int x),将4传给父类构造函数中的y
*/
System.out.println("zi..."+x);
}
}
class ExtendsDemo2
{
public static void main(String[] args)
{
Zi z = new Zi();
Zi z1= new Zi(4);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2