Chỉ vì tò mò tôi đã thử ví dụ này.JAVA Object/String overload overload
public class Class1 {
public void method(Object obj){
System.out.println("Object");
}
public void method(String str){
System.out.println("String");
}
public static void main(String... arg){
new Class1().method(null);
}
}
Đầu ra là "Chuỗi". Tôi muốn biết trên cơ sở những gì JVM quyết định gọi phương thức lấy String làm đối số chứ không phải Object.
Đây không phải là lỗi biên dịch phải không? Một cái gì đó về các thông số mơ hồ? – Thilo
Rõ ràng là không. Tôi ước điều đó. – Thilo
Không có gì mơ hồ về điều này, @Thilo. Nó sẽ là mơ hồ nếu phương thức đầu tiên chấp nhận 'Integer' và' String' thứ hai, vì sau đó cả hai đều không "cụ thể" hơn cái kia. – Joni