Sobes.tech
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.