Wenn die Klassendeklaration final ist, kann die Klasse nicht erweitert werden. (Unterklasse kann nicht erstellt werden)
Wenn final an die Deklaration der Instanzmethode angehängt ist, kann es in der Unterklasse nicht überschrieben werden.
Sie können einem letzten Feld nur einmal zuweisen. Es gibt zwei Möglichkeiten, einem endgültigen Instanzfeld zuzuweisen.
class Qiita {
final int value = 123;
}
class Qiita {
final int value;
public Qiita() {
this.value = 123;
}
}
Es gibt zwei Möglichkeiten, einem endgültigen Klassenfeld zuzuweisen.
class Qiita {
static final int value = 123;
}
class Qiita {
static final int value;
static {
value = 123;
}
}
Kann nur einmal vergeben werden.
Kann nicht einmal zugewiesen werden. (Weil der Wert bereits beim Aufruf der Methode zugewiesen wurde)