黑马程序员技术交流社区
标题:
JAVA继承问题?
[打印本页]
作者:
曹思敏
时间:
2013-6-4 09:10
标题:
JAVA继承问题?
本帖最后由 曹思敏 于 2013-6-6 11:13 编辑
继承了一个class叫做 Fritz,编译器却给我“No constuctor Fritz() in the class”这样的错误提示,为什么呢?
作者:
孙茜茜
时间:
2013-6-4 09:25
不贴代码怎么看
作者:
花心々小土豆
时间:
2013-6-4 09:42
在Fritz类中找不到不带参数的构造函数。
估计楼主在Fritz类中写入了代参的构造函数,所以jvm不会给这个类加默认的无参的构造函数,而在子类构造函数中的第一行又没有手动指定要调用Fritz类中的哪类构造函数
作者:
闫月乐
时间:
2013-6-4 11:36
是不是你父类中没有空参数的构造函数,而是全部都是有参数的构造函数?
子类对象一建立就会运行与之相对应的构造函数,而子类继承父类,会优先运行父类中空参数的构造函数,如果如果父类中手动定义了构造函数,系统会将默认的空参数构造函数取消,而此时,子类中需要
用super(参数),去手动调用父类中的构造函数,否则会出现你所说的那种问题!!
作者:
王瀛
时间:
2013-6-4 12:01
本帖最后由 王瀛 于 2013-6-4 12:02 编辑
找不到Fritz中的构造函数
可能你调用Fritz的对象时,传了初始化值,而父类(Fritz)中没有定义相对应的构造函数导致的
简单说就是 构造Fritz对象的方式在父类Fritz中没有给出定义。
作者:
胡晓思
时间:
2013-6-4 12:10
在父类复写无参构造方法就行
作者:
郑锐
时间:
2013-6-4 14:29
按照这个错误提示来看,就是没有找到父类的构造器。
你是不是在父类里面重载了构造函数。
在子类的构造函数里面第一句要用super调用你自己写的父类构造函数。
作者:
孔雀东南飞
时间:
2013-6-4 21:54
No constuctor Fritz() in the class
楼主:
1、这句英文意思:在类中没有找到空参数的构造函数Fritz()。
2、很明显,你在父类中重载了构造函数且构造函数带参数,那么这样你就需要在子类构造函数第一行加上super(参数),表示手动调用父类带参数的构造函数。
3、父类在加载的时候,会自动调用无参的构造函数。若要加载子类,那么必先加载父类,因为子类是要继承父类的,所以先加载父类,而父类在加载时必然调用父类构造函数。而在子类构造函数第一行super(参数),意思就是调用父类带参数的构造函数。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2