Sobes.tech
Junior

Clasa open este finală sau nu?

sobes.tech AI

Răspuns de la AI

Nu final. Cuvântul cheie open indică clar că poți moșteni această clasă și suprascrie membrii săi.

open class BaseClass {
    open func someMethod() {
        // Implementare implicită
    }
}

class DerivedClass: BaseClass {
    override open func someMethod() {
        // Implementare suprascrisă
    }
}

Să comparăm cu alți modificatori de acces:

Modificator Moștenire Suprascrierea membrilor
private Nu (în cadrul fișierului/ scopului) Nu
fileprivate Nu (în cadrul fișierului) Nu
internal Da (în cadrul modulului) Da (în cadrul modulului)
public Da (în cadrul modulului) Da (în cadrul modulului)
open Da (în orice modul) Da (în orice modul)
final Nu Nu

O clasă sau membru marcat ca final nu poate fi suprascris sau moștenit, făcându-l final. open face opusul.