仅参数类型不同的重载方法,使用过程的一个困惑:
有没有必要使用instanceof方法?
package overload.special; public class OverLoadTest { public void test(Object obj){ System.out.println("Object:"+obj); } public void test(Integer integer){ System.out.println("Integer:"+integer); } public void test(int int1){ System.out.println("int:"+int1); } public void test(String str){ System.out.println("String:"+str); } public static void main(String[] args) { OverLoadTest ot=new OverLoadTest(); ot.test(1); Integer object_int=new Integer(1); ot.test(object_int); Object obj=object_int; ot.test(obj); ot.test("1"); } }
优先级:
基本类型>对象
对象中 子类>父类,
其中Object类的优先级最低
http://shmilyaw-hotmail-com.iteye.com/blog/1447631
package overload.special; public class OverLoadTest { public void test(Object obj){ System.out.println("Object:"+obj); } public void test(Integer integer){ System.out.println("Integer:"+integer); } public void test(int int1){ System.out.println("int:"+int1); } public void test(String str){ System.out.println("String:"+str); } public static void main(String[] args) { OverLoadTest ot=new OverLoadTest(); ot.test(1); Integer object_int=new Integer(1); ot.test(object_int); Object obj=object_int; if (obj instanceof Integer) { ot.test(object_int); }else { ot.test(obj); } ot.test("1"); } }
时间: 2024-10-03 04:06:16