方法重载的机制是通过方法名相同,但形参不同的方式。所有方法都要求拥有独一无二的参数类型列表。
其实参数的顺序也可以区分方法,但是良好的编程习惯告诉我们不能那么做,否则代码很难读懂和维护。
1) 重载中的基本类型(primitive)向上转型机制:
基本类型能从一个“较小”的类型自动提升至一个“较大”的类型。首先我们得了解,基本类型从小到大的顺序:
byte < short(短整型) < int (整形) < long (长整形) < float < double
char < int < long ...
所以,当一个函数的重载版本中没有int的形参,但调用时赋予了int参数,则会自动向上寻找匹配的重载版本:long/ float / double ...
2) 使用可变参数列表的重载函数原则:
只在一个版本的重载函数中使用可变参数,或者干脆不用。
否则,如果直接调用"f()",编译器无法知道应该调用哪个方法。