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.