1输出为
10/13/2005
10/13/2005
10/1/2005
1/1/2005
2改成Date(int=1,int=1,int=2005); 后,程序有问题,其实有什么问题,可以自己上机调一下就知道了。
问题是与多态有关,第一题中,构造函数之间没有二义性,对于一个给定的类申明,编译器可以根据他的构造函数的参数来判定调用哪个构造函数,而如果改成上面的后,对于只有两个或一个或没有参数的构造函数,就会发生岐义,比如只有一个参数的话,第一个和第三个构造函数都可以调用,就产生了岐意了。
修改的话就把只有两个,一个和没有参数的构造函数删去即可。