因为如果在Y(int a,int b)中去掉super(a,b),编译器为了初始化正确,会自动插入super()代码,而你在你在父类X中声明了构造函数X(int a,int b),所以编译报构造函数错误,如果你在X中也去掉X(int a,int b),编译就会通过,因为此时编译器会自动产生构造函数X()。
解决方案 »
- 使用socket传送文件时,如何把文件名和文件类型也通过socket传送给服务器?
- 用NetBeans IDE 6.9.1生成的.class文件为什么不能运行?
- 有10万个用户的信息存储在文本文件,如何将重复的信息排除掉,给出解决的方法(至少2种)
- 急!关于jbuilder2005中使用layout
- 急!!::子类访问父类成员有哪些方法啊?
- jcreator问题
- 在执行java程序中用到了-classpath参数,程序执行正常,而在jbuild7中执行如何将-classpath参数加入
- int怎麽能转换成String?
- 哪位老知道哪儿有Jave下载,100分奉送?
- 紧急求助:关于剪贴板
- jdbc for oracle驱动程序能打包进jar文件吗?
- 大家进来讨论一道关于overload的题!
就是子类的构造方法必须调用父类的构造方法,不知是不是这样的?
1.子类无条件地继承父类的不含参数的构造函数
2.子类不能继承父类的有参构造函数
3.如果子类没有定义构造函数,则在创建新对象时,它将先执行继承自父类的无参构造函数 再执行自己的无参构造函数
4.如果子类定义了构造函数,则在创建新对象时,它将先执行继承自父类的无参构造函数再执行自己的构造函数
在这里,当你在父类也创建了有参构造函数后,父类的无参构造函数不乎存在,此时要在子类定义了构造函数,在创建新对象时,还是要先调用父类的无参构造函数,
解决问题的办法,可以在父类中再加上一个无参构造函数
x(){
x=0;//当然也可以是其它不超过 int 所规定的数据范围之内的任意整数
y=0;//当然也可以是其它不超过 int 所规定的数据范围之内的任意整数
}