Tôi luôn nghĩ rằng clone()
tạo một đối tượng mà không cần gọi hàm tạo.Có thể sao chép phương thức tạo đối tượng bằng cách sử dụng hàm tạo
Nhưng, khi đọc Java hiệu quả Khoản 11: Ghi đè bản sao sáng suốt, tôi thấy một tuyên bố mà nói rằng
Việc cung cấp rằng “không có nhà xây dựng được gọi là” quá mạnh. Một phương thức sao chép tốt có thể gọi các nhà thầu để tạo các đối tượng nội bộ vào bản sao đang được xây dựng. Nếu lớp là cuối cùng, sao chép thậm chí có thể trả về một đối tượng được tạo bởi một hàm tạo.
Ai đó có thể giải thích điều này cho tôi không?
phương thức 'clone()' không gọi hàm tạo, hành vi mặc định của nó là nó sẽ thực hiện bản sao nông. nhưng nếu chúng ta muốn thực hiện bản sao sâu, chúng ta cần ghi đè phương thức 'clone()', từ đó chúng ta có thể trả về đối tượng mới. – swapy