为什么类有带参数的构造函数后就必须要写上无参数的构造函数
public class Info{
//public Info(){}
public Info(XXX xxx){
}
}
public class InfoJava{
Info info = new Info();
}
这个时候InfoJava在实力化Info的时候因为Info没有不带参数的构造函数就会包错,为什么??
问题点数:20、回复次数:7Top
1 楼steedhorse(晨星)回复于 2006-02-22 13:02:16 得分 14
因为一旦你自己定义了某个构造函数,编译器就不会再多此一举地帮你自动生成默认构造函数。Top
2 楼steedhorse(晨星)回复于 2006-02-22 13:07:16 得分 0
至于“必须要”,没有这一说。
有时候我们出于某些方面的考虑(比如数据的有效性),还故意不提供无参构造函数呢。免得外部程序不提供参数就想构造对象(当然是在我们不希望发生这种事的情形下)。Top
3 楼usaspy(行走的鱼)回复于 2006-02-22 13:33:08 得分 0
会报错????不会吧.Top
4 楼steedhorse(晨星)回复于 2006-02-22 13:37:40 得分 2
当然会报错,因为他后面调用了无参构造函数,而那个类根本没有。Top
5 楼doway(john)回复于 2006-02-22 13:46:18 得分 2
同意。
Top
6 楼fccfcc1234(大尾巴狼)回复于 2006-02-22 15:00:18 得分 1
恩恩Top
7 楼usaspy(行走的鱼)回复于 2006-02-22 17:24:51 得分 1
嗬嗬,不好意思,没仔细看。。Top




