ĐỂ ĐỊA CHỈ CÁC VẤN ĐỀ LỚP CUỐI CÙNG:
Có hai cách để làm cho một lớp cuối cùng. Đầu tiên là sử dụng từ khóa cuối cùng trong khai báo lớp:
public final class SomeClass {
// . . . Class contents
}
Cách thứ hai để thực hiện một trận chung kết lớp là khai báo tất cả các hàm tạo của nó là riêng tư:
public class SomeClass {
public final static SOME_INSTANCE = new SomeClass(5);
private SomeClass(final int value) {
}
Đánh dấu nó cuối cùng giúp bạn tránh khỏi rắc rối nếu phát hiện ra rằng nó thực sự là một trận chung kết, để chứng minh cái nhìn về lớp Test này. nhìn công khai từ cái nhìn đầu tiên.
public class Test{
private Test(Class beanClass, Class stopClass, int flags)
throws Exception{
// . . . snip . . .
}
}
Thật không may, vì hàm tạo duy nhất của lớp là riêng tư, nên không thể mở rộng lớp này. Trong trường hợp của lớp Test, không có lý do gì mà lớp phải là cuối cùng. Lớp Test là một ví dụ tốt về cách các lớp cuối cùng ẩn có thể gây ra vấn đề.
Vì vậy, bạn nên đánh dấu nó là cuối cùng khi bạn ngầm hoàn thành một lớp cuối cùng bằng cách đặt nó ở chế độ riêng tư.