Java普通方法重载
2022/1/17 22:03:40
本文主要是介绍Java普通方法重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
【转载自本科老师上课课件】
调用一个重载过的方法时,Java编译程序是如何确定究竟应该调用哪一个方法?以下代码定义了三个重载方法:
public void f(char ch){ System.out.println(“char!”); } public void f(short sh){ System.out.println(“short!”); } public void f(float f){ System.out.println(“float!”); }
当调用语句 f((byte)65); 时,到底调用的是上述哪一个方法?
这个问题其实就是在“方法调用时发生的类型转换”,即在方法调用上下文中产生的类型转换。其类型转换是按“基本数据类型宽转换”进行。若“宽转换”不成功,再进行“装箱”和“拆箱”类型转换。
按“宽转换”,byte可自动转换成short或float,但short比float更特殊。特殊的含义是:short能够宽转换到float,反之不行。故最终调用的是方法:public void f(short sh){…};
再如:
public void f(Object o){…} public void f(int[] ia){…}
当调用语句 f(null); 时,应调用哪一个方法?
由于空引用null可自动转换到int[]类型,也可自动转换到Objec类型。但int[]数组类型更特殊(即:int[]数组类型是一个Object类型,但Object不是int[]数组),故最终调用的是f(int[] ia)方法。
这篇关于Java普通方法重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?