初学java,遇到一点小问题,求高手解答

环境是JDK1.6,和NetBeansIDE7.3,在学到派生继承的时候,有小问题,我建了父类fu,子类zi,但老是提示子类的构造函数有问题,代码如下packagefuz... 环境是JDK1.6,和NetBeans IDE 7.3,在学到派生继承的时候,有小问题,我建了父类fu,子类zi,但老是提示子类的构造函数有问题,代码如下
package fuziclass;
class fu{ int i,j; void showfu() { System.out.println(i+" "+j); } fu(int a,int b) { i=a; j=b; }}
class zi extends fu{ int k; void showzi() { System.out.println(k); } zi(int c) { k=c; } void showall() { System.out.println(i+" "+j+" "+k); }}
class test{ public static void main(String args[]) { fu f=new fu(1,2); zi z=new zi(3); f.showfu(); z.showzi(); z.showall(); }}

大神们看一下 哪里错了???
展开
 我来答
百度网友6c713d6
2013-07-21
知道答主
回答量:10
采纳率:0%
帮助的人:6.4万
展开全部
第一,你的父类构造器不是无参构造器,没有定义super()方法,所以父类等于没有设定好构造器的参数。故而子类构造器无法继承父类构造器,所以报错。
第二,你的结尾代码感觉也有问题,我这里也是报错,因为你没有设置返回值,系统识别不了你的i,j到底哪个
追问
知道了  后面的类test要改成Fuziclass,对应第一句的packag fuziclass
禾木双子
2013-07-21 · TA获得超过260个赞
知道小有建树答主
回答量:204
采纳率:100%
帮助的人:150万
展开全部
  1. java所有的方法必须要说明返回结果,如果没有返回结果方法前应该加void

  2. Java类的类名首个字母应该大写

  3. Java的子类的构造方法应该尽量满足父类的父类方法,应该调用super()方法,相当于父类的 fu(int a,int b)构造方法。如果没有调用该方法,则父类的相关属性没有被实例化。

  4. 最要说明的是,看了您的代码感觉您代码风格像C++的,应该尽量按照Java的风格要标准来写。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjf_1175
2013-07-21 · TA获得超过407个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:114万
展开全部
在创建子类对象时,必需首先创建父类对象,道理非常简单,必需先有父亲才会后儿子。
你在父类中定义了带参数的构造器 fu(int a,int b) ,默认无参数的构造器public fu() 将被覆盖,也就是不存在了,而你在创建子类时使用的构造器是zi(int),此构造器中没有显示调用父类的构造器fu(int a,int b),默认系统将调用pubic fu()构造器,而此默认构造器已不存在,所以提示出错,如果在子类的构造器zi(int c){ super(2,3);} 就可以了,或者你必须重新在父类中显示定义一个public fu()的构造器,如你以前就没有问题了...
追问
哦  知道了  就是在父类里加一个fu(){}
这个空的构造函数就可以了是吧
追答
恩,聪明
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天涯浪子B
2013-07-21 · TA获得超过148个赞
知道答主
回答量:295
采纳率:0%
帮助的人:181万
展开全部
没错啊,除非你用的中文括号和标点,你检查下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式