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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如果定义了有参数的构造函数,必须非得定义无参的构造函数吗?

7 个回复

倒序浏览
只是在类中定义这么一个函数的话编译运行不会报错,但是如果在main函数中new一个对象的话,就会报错

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

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

这么使用了
回复 使用道具 举报 1 0
没有无参的构造方法就要定义午餐构造方法,有有参构造方法就不用非要
回复 使用道具 举报
如果有带参构造函数,最好定义一个无参构造函数! 因为我们一旦定义了构造函数,系统就不自动提供无参构造函数了.总之,我们在定义完带参构造函数之后,最好定义一个无参构造函数,以防会有调用无参构造函数创建对象的情况发生!!
回复 使用道具 举报 1 0
不一定.看需求.如果你不需要用到无参就不需要定义.如果你有可能需要,那么就要定义
回复 使用道具 举报
当你使用到有参构造函数时,就要定义无参构造函数
回复 使用道具 举报
二楼正解,,,,
回复 使用道具 举报

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

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

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马