Java构造函数 为什么需要无参构造函数
答案:2 悬赏:0 手机版
解决时间 2021-02-14 19:32
- 提问者网友:骑士
- 2021-02-14 04:09
class cust { int a; cust(){} cust(int a) { this.a=a; } } class test { cust A=new cust(4); } 如果没有cust(){} 会怎么样啊,构造函数中无参的是起什么作用的? cust(int a) {...}也是构造函数么
最佳答案
- 五星知识达人网友:轮獄道
- 2021-02-14 05:25
子类继承父类的时候会自动继承父类的默认构造函数(也就是继承那个无参数的构造函数)。而你的类里面已经有一个带有参数的构造函数了,如果你没有写那个默认的不带参数的构造函数的话,继承的时候子类就会报错,因为系统不知道要不继承哪个构造函数,必须明确的使用super()关键字来描述。所以我们一般为了避免这种错误的发生,在有带有多个构造函数的类里面都会写一个不带参数的构造函数。
全部回答
- 1楼网友:洒脱疯子
- 2021-02-14 06:40
补充下楼上的回答~~“但是如果你创造了一个带有参数的构造方法,那么无参的构造方法必须显式的写出来,否则会编译失败"这句话有点不妥,应该这么理解:每个类至少要有一个构造函数,如果你自己构建了一个带有参数的构造函数而没有再显示的写出无参的构造函数也是可以的,不过当你尝试通过一个无参的构造函数来构建(new)时,此时编译器才会报错,因为找不到这个无参的构造函数。也就是说当一个类你没有给他构造函数,则编译器会自动补上一个无参的,若有的话就不会,你需要显示将此无参的构造函数写出来。
另一个问题:无参的构造函数,只是为了比较好的构造类(new),具体情况要根据你的类是如何设计的,呵呵。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯