Junior
Ist die open-Klasse final oder nicht final?
sobes.tech KI
Antwort von AI
Nicht final. Das Schlüsselwort open zeigt deutlich an, dass Sie von dieser Klasse erben und ihre Mitglieder überschreiben können.
open class BaseClass {
open func someMethod() {
// Standardimplementierung
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Überschriebene Implementierung
}
}
Vergleich mit anderen Zugriffsmodifikatoren:
| Modifikator | Vererbung | Überschreiben von Mitgliedern |
|---|---|---|
private |
Nein (im Rahmen der Datei/des Scopes) | Nein |
fileprivate |
Nein (im Rahmen der Datei) | Nein |
internal |
Ja (im Rahmen des Moduls) | Ja (im Rahmen des Moduls) |
public |
Ja (im Rahmen des Moduls) | Ja (im Rahmen des Moduls) |
open |
Ja (in jedem Modul) | Ja (in jedem Modul) |
final |
Nein | Nein |
Eine Klasse oder ein Mitglied, das mit final gekennzeichnet ist, kann nicht überschrieben oder vererbt werden, was es final macht. open macht das Gegenteil.