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

xiaoxiao2021-02-28  22

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

转载请注明原文地址: https://www.6miu.com/read-2621171.html

最新回复(0)