[导入]Java 中类的重载与覆盖之间的一点小区别

[导入]Java 中类的重载与覆盖之间的一点小区别
大的区分我想熟悉 java 这门语言的人都知道,本文仅为记录在阅读《Effective java》时所遇到的新知识。 在《Effective java》中,Joshua Bloch提到:对于重载方法 (overloaded method) 的选择是静态的,而对于被改写的方法 (overridden method) 的选择是动态的。 对于被改写的方法,选择正确的方法版本是在运行时刻进行的,选择的依据是被调用方法所在对象的运行时类型。如果被改写方法是在子类实例上被调用,那么该子类实例中的方法将会执行。 而对于重载方法,则恰恰与改写方法的行为相反。 请看如下例子: public class CollectionClassifier { public static String classify(Set s) { return "Set"; } public static String classify(List l) { return "List"; [...]
文章来源: http://blog.baturu.com/index.php/2009/07/08/a_slight_difference_between_overload_and_override_in_java.html

你可能感兴趣的:([导入]Java 中类的重载与覆盖之间的一点小区别)