java方法重载(慎用重载)
来源:互联网 发布:starfm融合算法 编辑:程序博客网 时间:2024/04/27 19:59
1.什么是方法重载
方法名字相同,参数类型或者参数个数不同
2.下面我们先看下面这段代码
<span style="font-size:18px;">public class CollectionClassifier { public static String classify(Set<?> s) { return "set"; } public static String classify(List<?> l) { return "list"; } public static String classify(Collection<?> c) { return "unknown"; } public static String get(String str1, String str2) { return str1 + str2; } public static String get(String... strings) { return "###########"; } /** * * * @param args */ public static void main(String[] args) { Collection<?>[] cArray = { new ArrayList<String>(), new HashSet<String>(), new HashMap<String, String>().values() }; for (Collection<?> c : cArray) { System.out.println(classify(c)); } System.out.println(get("1", "2")); }}</span>
我们期待的输出可能是list,set,unkonown;
然而真实的输出却是unkonown,unkonown,unkonown
3.原因
classify方法被重载了,而决定调用哪个重载的方法是在编译时做出决定的,下面的for循环,参数的编译时类型都是Collection,所以最终都是调用参数类型是Collection的classify方法
0 0
- java方法重载(慎用重载)
- Effective Java慎用重载
- 慎用重载(effective java)
- 慎用重载_1
- 慎用重载_2
- (41):慎用重载
- 第四十一条:慎用重载
- 第41条 方法——慎用重载
- java方法重载2
- java中的方法重载
- Java方法重载
- java方法的重载
- java方法重载
- java方法重载
- Java---方法重载1
- java 方法的重载
- 十七、JAVA方法重载
- JAVA 方法重载
- Servlet的内部跳转与重定向跳转的区别与用法
- 算法实现(一)
- Android界面编程——Android高级UI组件(三)
- SSH学习笔录
- 【Linux C】scanf和Linux C中的gets函数警告
- java方法重载(慎用重载)
- x264编码详细文字全过程
- Python书籍推荐
- 文章标题
- php学习 left.php
- 通过Button按钮调节亮度
- 欢迎使用CSDN-markdown编辑器
- Android 使用ZXing扫描在部分手机上扫描变形解决办法
- IE兼容css效果-滤镜实现