本帖最后由 李斌 于 2012-5-21 23:47 编辑
class Fu
{
Fu()
{
int x=11;
System.out.println("父类:"+x);
}
Fu (int x)
{
x=1000;
System.out.println("父类 :"+x);
}
}
class Zi extends Fu
{
Zi ()
{
System.out.println("子类 :");
}
Zi (int x)
{
System.out.println("子类 :"+x);
}
}
class Test
{
public static void main(String[] args)
{ Zi a=new Zi();
Zi b=new Zi(5);
}
}
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1932687959\QQ\WinTemp\RichOle\L]8AHAAQ829M$LYQ8F@6{MR.jpg
我是这样理解的:
Zi a=new Zi();这一句,建立完对象就会访问父类中空参数的构造函数而你的代码里面没有, 所以需要创建一个空参数的构造函数;
Zi b=new Zi(5);这一句,建立完对象就会访问父类中也是 不带参数 的构造函数,然后再方位本类中 带参数 的构造函数。
当父类中没有空参数的构造函数时,需要子类手动通过super语句或者添加一个空参数的构造函数,
还可以通过this语句老访问本类中的构造函数,但是子类中至少有一个构造函数会访问父类中的构造函数。
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1932687959\QQ\WinTemp\RichOle\L]8AHAAQ829M$LYQ8F@6{MR.jpg
前面那个打错字 了 以这个为准
|
|