Der final
Modifikator ist in der Swift Language Reference beschrieben, die sagt
final
diesen Schlüssel Nehmen, um eine Klasse oder auf eine Eigenschaft, Methode oder Index Mitglied einer Klasse. Es wird auf eine Klasse angewendet, um anzugeben, dass die Klasse nicht unterklassifiziert werden kann. Es wird auf eine Eigenschaft, eine Methode oder einen Index einer Klasse angewendet, um anzuzeigen, dass ein Klassenmitglied in keiner Unterklasse überschrieben werden kann.
Dies ohne final
bedeutet können wir schreiben:
class A {
var x: Int {return 5}
}
class B : A {
override var x: Int {return 3}
}
var b = B()
assert(b.x == 3)
aber wenn wir final
in Klasse A
class A {
final var x: Int {return 5}
}
class B : A {
// COMPILER ERROR
override var x: Int {return 3}
}
dann verwenden, um dies geschieht:
$ swift final.swift
final.swift:6:18: error: var overrides a 'final' var
override var x: Int {return 3}
^
final.swift:2:15: note: overridden declaration is here
final var x: Int {return 5}