初学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(); }}
大神们看一下 哪里错了??? 展开
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(); }}
大神们看一下 哪里错了??? 展开
展开全部
java所有的方法必须要说明返回结果,如果没有返回结果方法前应该加void
Java类的类名首个字母应该大写
Java的子类的构造方法应该尽量满足父类的父类方法,应该调用super()方法,相当于父类的 fu(int a,int b)构造方法。如果没有调用该方法,则父类的相关属性没有被实例化。
最要说明的是,看了您的代码感觉您代码风格像C++的,应该尽量按照Java的风格要标准来写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在创建子类对象时,必需首先创建父类对象,道理非常简单,必需先有父亲才会后儿子。
你在父类中定义了带参数的构造器 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(int a,int b) ,默认无参数的构造器public fu() 将被覆盖,也就是不存在了,而你在创建子类时使用的构造器是zi(int),此构造器中没有显示调用父类的构造器fu(int a,int b),默认系统将调用pubic fu()构造器,而此默认构造器已不存在,所以提示出错,如果在子类的构造器zi(int c){ super(2,3);} 就可以了,或者你必须重新在父类中显示定义一个public fu()的构造器,如你以前就没有问题了...
追问
哦 知道了 就是在父类里加一个fu(){}
这个空的构造函数就可以了是吧
追答
恩,聪明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没错啊,除非你用的中文括号和标点,你检查下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询