Java 小细节——方法基本类型参数的重载

阅读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方法。如果都没有,就会编译报错。

你可能感兴趣的:(Java,基础)