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.