A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 灬王一鹏 中级黑马   /  2015-9-4 11:42  /  1747 人查看  /  15 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么我建立了有参构造函数 会把系统默认的无参构造函数干掉啊?  不是重载么?为什么不能同时存在!!,求大神解答!么么哒~。~!

15 个回复

倒序浏览
这是规定..
回复 使用道具 举报
不是干掉,是判断语句
···
if(java发现你写了构造函数)
    则不会生成默认空参数构造函数;
else
    生成空参数构造函数;
···
我是这么理解的
回复 使用道具 举报
请把代码拿出来
回复 使用道具 举报
在没写构造函数的时候,会默认添加,如果你写了,就相当于有构造函数不会添加了,这时候如果你需要无参构造函数就需要,重载一下了。
回复 使用道具 举报
自定义有参构造函数了就一定要自己打一个无参构造
回复 使用道具 举报
横溢天使 来自手机 中级黑马 2015-9-4 19:39:39
7#
空构造函数是系统默认存在的,在页面不显示。但当你手动写入有参数的构造函数时,自然就把空构造函数挤掉了
回复 使用道具 举报
构造函数是干嘛用的,一个就够了呀,你把无参的干掉,就只有一个喽
回复 使用道具 举报
系统默认存在
回复 使用道具 举报
你要么一个构造函数也不写,它会添加默认无参构造函数,要么你一写构造函数,写什么就是什么,不会再自动添加。
回复 使用道具 举报
可以重载呀,只是你要自己写,只要你写了构造方法系统就不再给默认的了
回复 使用道具 举报
我来了 来自手机 中级黑马 2015-9-4 22:48:20
12#
规定的东西记住就行了,不必纠结的
回复 使用道具 举报
创建有参构造参数后,必须把无参的构造参数的代码也写出来,才能实现重载。如不写,系统不会再默认分配。
回复 使用道具 举报
这就是Java规定没有为什么
回复 使用道具 举报
谢谢大家,我记下了,约定好的事  是吗
回复 使用道具 举报
不写有参构造的时候,系统给你提供一个默认隐藏的无参构造(实际上是调用父类的无参构造);当你写了有参构造之后,会在有参构造中调用父类的无参构造;所以这时候你需要用无参构造的话,得自己补充写出来。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马