public class test {
test(double[] a)
{
System.out.println("in double");
}
test(Object a)
{
System.out.println("in object");
}
public static void main(String args[])
{
new test(null);
}
}
Trong đoạn mã trên, tôi vượt qua null
làm đối số hàm tạo. Như null
có thể là bất cứ điều gì, mã trên biên dịch tốt. Khi tôi chạy mã, tôi mong đợi nó in trong đối tượng nhưng nó in trong đôi Lý do đằng sau điều này là gì?Tại sao Java lại thích gọi hàm dựng kép?
LƯU Ý các câu hỏi liên quan có thể không trùng lặp vì câu hỏi này có liên quan với datatype nguyên thủy vs Object
Dường như nó đang sử dụng 'double' vì nó là hàm tạo đầu tiên được định nghĩa. Bạn đã thử xác định hàm tạo với tham số 'Object' trước chưa? –
@KErlandsson xin lỗi Tôi không nghĩ rằng một bản sao của câu hỏi được liên kết – rocking
@rocking một đôi [] không phải là một nguyên thủy. Mảng là các đối tượng. 'double [] instanceof Object == true'. –