黑马程序员技术交流社区
标题:
有关子类实例化过程的疑惑
[打印本页]
作者:
李东城
时间:
2013-2-13 13:38
标题:
有关子类实例化过程的疑惑
为什么this语句与super语句不能存在于同一构造函数中?
错误代码:
class Fu
{
Fu( )
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu:"+x);
}
}
class Zi extends Fu
{
Zi( )
{
System.out.println("zi run");
}
Zi(int x)
{
this( );
super(7); //报错的位置。
System.out.println("zi:"+x);
}
}
class ExtendsDemo
{
public static void main(String[] args)
{
Zi z1=new Zi( );
Zi z2=new Zi(6);
}
}
复制代码
作者:
许鑫星
时间:
2013-2-13 14:02
因为在构造子类时,会自动的调用父类对应的构造函数,你在调用this的时候其实已经调用了super(),再调用一个super(6)就不行了。
作者:
朱玉玺
时间:
2013-2-13 16:00
楼上正解
作者:
史政法
时间:
2013-2-13 16:24
super语句只能写在构造函数的第一行。
作者:
刘卡
时间:
2013-2-18 21:40
一样的观点"super语句只能写在构造函数的第一行。"
作者:
0.00
时间:
2013-3-13 10:45
this 与super的权限相同,不能同时存在,因为他们不能有先后执行的关系,只能存在一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2