Nếu bạn tạo bất cứ biến nào là final, bạn không thể thay đổi giá trị của biến final (nó sẽ là hằng số).
Ví dụ của biến final trong Java:
Giả sử có một biến final là MAX_SPEED. Bạn cố ý thay đổi giá trị của biến này nhưng nó không bị thay đổi, bởi vì biến final một khi được gán giá trị thì không bao giờ thay đổi được.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Kết quả:
Compile Time Error Exception in thread "main" java.lang.Error: Unresolved compilation problem: The final field FinalExam1.MAX_SPEED cannot be assigned
Trong java, bạn không thể ghi đè phương thức final.
Ví dụ về phương thức final trong java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Kết quả:
Exception in thread "main" java.lang.VerifyError: class vn.viettuts.keywords.SH overrides final method run.()V
Trong java, bạn không thể kế thừa lớp final.
Ví dụ về lớp final trong java:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Kết quả:
Compile Time Error
Câu hỏi: Phương thức final có được kế thừa không?
Trả lời: Có, phương thức final được kế thừa nhưng bạn không thể ghi đè nó. Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 |
|
Kết quả:
running...
Câu hỏi: Biến final trống hoặc không được khởi tạo là gì?
Một biến final mà không được khởi tạo tại thời điểm khai báo được gọi là biến final trống.
Nếu bạn muốn tạo một biến mà được khởi tạo tại thời điểm tạo đối tượng và một khi nó đã được khởi tạo thì không thể bị thay đổi, thì biến final trống là hữu ích trong trường hợp này. Ví dụ như số thẻ PAN CARD của một nhân viên.
Nó chỉ có thể được khởi tạo trong Constructor.
Ví dụ:
1 2 3 4 5 6 7 8 9 |
|
Một biến static final mà không được khởi tạo tại thời điểm khai báo thì đó là biến static final trống. Nó chỉ có thể được khởi tạo trong khối static.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 |
|
Câu hỏi: Tham số final là gì?
Nếu bạn khai báo bất cứ tham số nào là final, thì bạn không thể thay đổi giá trị của nó.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 |
|
Kết quả:
Compile Time Error
Câu hỏi: Chúng ta có thể khai báo một constructor final không?
Không, bạn không thể khai báo một construtor với từ khóa final trong java.
Nguồn tin: viettuts