Η δήλωση final
Μία κλάση, μια μέθοδος ή ένα πεδίο μπορεί να δηλωθεί ως final
.
final κλάση
Μια κλάση final δηλώνεται ως εξής:
public final class MyFinalClass {...}
Μια final κλάση δεν μπορεί να γίνει extended από κάποια άλλη κλάση. Δηλαδή δεν μπορεί μια άλλη κλάση να την κληρονομήσει.
Όλες οι μέθοδοι σε μια κλάση final θεωρούνται final;
final μέθοδος
Μια μέθοδος final δηλώνεται ως εξής:
public final void fun() {...}
ή
public static final void fun() {...}
Μια final μέθοδος δεν μπορεί να γίνει overridden από κάποια άλλη μέθοδο υποκλάσης. Δηλαδή δεν μπορεί μια υποκλάση να έχει το ίδιο όνομα με την final της υπερκλάσης.
Σε μια κλάση μπορεί να υπάρχουν περισσότερες από μία final μέθοδοι.
final πεδίο
Ένα πεδίο μπορεί να αρχικοποιηθεί μόνο μία φορά και διατηρεί την τιμή αυτή. Είναι δηλαδή μια σταθερή τιμή η οποία δεν πρόκειται να αλλάξει στη διάρκεια της εφαρμογής.
Συνηθίζεται τα final πεδία να γράφονται με κεφαλαία γράμματα και οι σύνθετες ονομασίες να χωρίζονται με κάτω παύλα. π.χ.:
public static final double PI_NUMBER = 3.141592653589793;
class Chess { enum ChessPlayer { WHITE, BLACK } ... final ChessPlayer getFirstPlayer() { return ChessPlayer.WHITE; } ... }