Java 小细节——方法基本类型参数的重载
程序员文章站
2024-02-28 21:48:46
...
阅读2分钟,掌握一个Java小细节,你值得拥有!
方法重载指的是方法名相同,参数列表不同(不同的参数类型或者参数顺序或者参数个数)的情况。不过你真的了解么?看看下面这个例子。
public class PrimitiveOverloading {
void f1(char x){
System.out.println("f1(char)");
}
void f1(byte x){
System.out.println("f1(byte)");
}
void f1(short x){
System.out.println("f1(short)");
}
void f1(int x){
System.out.println("f1(int)");
}
void f1(long x){
System.out.println("f1(long)");
}
void f1(float x){
System.out.println("f1(float)");
}
void f1(double x){
System.out.println("f1(double)");
}
public static void main(String[] args) {
PrimitiveOverloading over = new PrimitiveOverloading();
over.f1(5);
}
}
输出结果是什么?为什么呢?让我们实践一下。
你会发现常数5被当做int值处理,所以如果某个重载方法接受int型参数,它会被调用。至于其他情况,如果传入的数据类型(实际参数类型)小雨方法中声明的形式参数类型,实际数据类型就会被提升。
如果没有接受int的方法,就会考虑使用float方法->double方法。如果都没有,就会编译报错。