Tôi đang đọc "Thiết kế API thực tế" và tìm đoạn sau:Sử dụng getter/setter ngoài lĩnh vực công cộng để tương thích nhị phân?
"Lý do khác để thích phương thức trên các trường có thể được tìm thấy trong đặc tả JVM. Bạn được phép di chuyển phương thức từ lớp này sang lớp khác Vì vậy, một phương thức ban đầu được giới thiệu là Dimension javax.swing.JComponent getPreferredSize (Dimension d) có thể bị xóa trong một phiên bản mới và được chuyển đến Dimension java.awt.Component.getPreferredSize (Dimension d) Một sự thay đổi như thế này thực sự đã xảy ra trong JDK 1.2, và điều này có thể được thực hiện chỉ vì trường đã được đóng gói bởi một phương thức, một hoạt động như thế này không được phép cho các trường. được định nghĩa trong một lớp, nó phải ở đó cho foreve r để duy trì tính tương thích nhị phân, đó là một lý do khác để giữ cho các trường riêng tư "
vì tôi đồng ý sử dụng getter/setter là cách tốt hơn. Nhưng tôi không hiểu tại sao việc chuyển trường công khai sang lớp cha sẽ phá vỡ tính tương thích nhị phân? Bạn vẫn có thể truy cập vào trường đó thông qua lớp con miễn là nó được công khai trong phụ huynh.
Đây chỉ là điều tôi có thể đoán được. Có lẽ ở thời điểm rất cũ, nó là. –