Sobes.tech
Junior

Is de open-klasse final of niet?

sobes.tech AI

Antwoord van AI

Niet final. Het sleutelwoord open geeft duidelijk aan dat je van deze klasse kunt erven en zijn leden kunt overschrijven.

open class BaseClass {
    open func someMethod() {
        // Standaard implementatie
    }
}

class DerivedClass: BaseClass {
    override open func someMethod() {
        // Overschreven implementatie
    }
}

Laten we vergelijken met andere toegangsmodifiers:

Modifier Erfenis Overschrijving van leden
private Nee (binnen het bestand/de scope) Nee
fileprivate Nee (binnen het bestand) Nee
internal Ja (binnen de module) Ja (binnen de module)
public Ja (binnen de module) Ja (binnen de module)
open Ja (in elke module) Ja (in elke module)
final Nee Nee

Een klasse of lid gemarkeerd als final kan niet worden overschreven of geërfd, waardoor het final is. open doet het tegenovergestelde.