黑马程序员技术交流社区

标题: 如果定义了有参数的构造函数,必须非得定义无参的构造函数吗? [打印本页]

作者: 641551734    时间: 2016-4-7 22:19
标题: 如果定义了有参数的构造函数,必须非得定义无参的构造函数吗?
如果定义了有参数的构造函数,必须非得定义无参的构造函数吗?
作者: 251855915    时间: 2016-4-7 22:46
只是在类中定义这么一个函数的话编译运行不会报错,但是如果在main函数中new一个对象的话,就会报错

  1. Student s = new Student();
复制代码

这句代码就会报错,只可以
  1. Student s = new Student("张三",15);
复制代码

这么使用了
作者: daniua    时间: 2016-4-7 22:51
没有无参的构造方法就要定义午餐构造方法,有有参构造方法就不用非要
作者: 兵蜂    时间: 2016-4-7 22:56
如果有带参构造函数,最好定义一个无参构造函数! 因为我们一旦定义了构造函数,系统就不自动提供无参构造函数了.总之,我们在定义完带参构造函数之后,最好定义一个无参构造函数,以防会有调用无参构造函数创建对象的情况发生!!
作者: 荒丶    时间: 2016-4-8 07:29
不一定.看需求.如果你不需要用到无参就不需要定义.如果你有可能需要,那么就要定义
作者: zhoubinjian    时间: 2016-4-8 10:58
当你使用到有参构造函数时,就要定义无参构造函数
作者: lidandan    时间: 2016-4-8 12:11
二楼正解,,,,
作者: syasuker    时间: 2016-4-8 13:06

无参数构造函数的作用:
1. 你可以手动把构造函数设为private来防止外部类用new创建该类对象。
2. 创建对象后需要干一些事情,比如获取数据,设定回调函数
3. 如果一个基类没有无参构造函数,派生类的无参构造函数还有一个功能是,显式地调用基类构造函数
    子类的所有的构造函数,默认都会访问父类中空参数的构造函数。

这么说把为了 防止出现各种奇怪的问题,你最好手动定义以一个无参构造函数,因为到时候你就不记得了2333






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2