要完整的描述一个方法,需要指出方法名以及参数类型。这叫做方法的签名。而返回类型不是方法签名的一部分,也就是说,不能有两个名字相同、参数类型也相同却返回不同类型值的方法。作者: 严旭晟 时间: 2014-3-15 23:04
void show(int a,char b,double c)和double show(int x,char y,double z)
首先,这两者没有构成重载;
其次,明确重载定义和特点
--重载只看同名函数的不同参数列表,所谓参数列表的区别有:01.参数个数 02.参数类型 03.参数顺序
--三个注意:01.必须是同名函数;
02.参数列表请关注类型,而不是变量名称
03.与返回值无关
总之,重载只需关注方法签名
最后,请参考Thinking in Java第四版 P72
The method name and argument list( which is called the signature of the method)uniquely identify that method. 作者: 严旭晟 时间: 2014-3-15 23:07
而你给的例子,两者的方法签名相同就不能区别----即在编译器看来是同一函数
既然是同一函数,编译器当然不会安装重载来处理