仅参数类型不同的重载方法,使用过程的一个困惑:
有没有必要使用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");
}
}