Giả sử tôi có một phương thức trong một lớp Java và tôi không muốn bất kỳ lớp con nào của lớp đó có thể ghi đè phương thức đó. Tôi có thể làm điều đó?Không cho phép các lớp con từ phương pháp ghi đè Java
Trả lời
Bạn có thể khai báo các phương pháp để có final
, như trong:
public final String getId() {
...
}
Mọi chi tiết, thấy http://docs.oracle.com/javase/tutorial/java/IandI/final.html
Đơn giản chỉ cần thực hiện các phương pháp thức.
Nếu phương pháp của bạn không phải là một phần của API được tạo và không được gọi trực tiếp bởi lớp con, bạn chỉ cần thực hiện phương thức private
.
Nếu phân cấp lớp của bạn được chứa trong một gói duy nhất, hãy đặt phương thức của bạn trong phạm vi gói (không có từ khóa phạm vi). Vì vậy, chỉ có thế giới bên ngoài (bao gồm các gói khác của riêng bạn) không thể truy cập nó và do đó không thể ghi đè lên nó.
Nếu phương pháp của bạn là không thực sự là một phần của API của bạn nhưng phải được hiển thị bởi lớp con thậm chí bên ngoài, thích làm cho nó protected
và final
Cuối cùng nếu phương pháp của bạn là một phần của API của bạn, làm cho nó public
và final
.
Điều này thật hiển nhiên, tại sao tôi không nghĩ về điều này? – xorinzor