public class OverloadingTest extends Format{
public int add(String s1){
System.out.println("With String");
return 1;
}
public int add(Object a){
System.out.println("With Object");
return 1;
}
public static void main(String[] args) {
OverloadingTest overloadingTest = new OverloadingTest();
overloadingTest.add(null);
}
}
Tại sao là sản phẩm của chương trình With String ?
Tại sao đây là đầu ra của chương trình?
Tôi đã cố gắng đọc JLS cho phiên bản thứ 6, nhưng tôi vẫn không thể tìm thấy câu trả lời.
Lý do duy nhất tôi có thể đoán là đối sánh gần nhất trong phân cấp Inheritance được chọn.
Vì vậy, trong trường hợp này, nó sẽ nhận String là Object là siêu lớp của nó.
Bạn đã trả lời câu hỏi của riêng bạn :) –
Lớp phụ Subber luôn chọn .... – Thihara
@Deepak Bala Oh tuyệt vời. Nhưng bạn có bất kỳ tài liệu tham khảo hoặc tài liệu nào có thể chỉ ra điều này không? – Sam