Junior
La classe open è finale o non finale?
sobes.tech AI
Risposta dell'AI
Non finale. La parola chiave open indica chiaramente che puoi ereditare da questa classe e sovrascrivere i suoi membri.
open class BaseClass {
open func someMethod() {
// Implementazione predefinita
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Implementazione sovrascritta
}
}
Confrontiamo con altri modificatori di accesso:
| Modificatore | Ereditarietà | Sovrascrittura dei membri |
|---|---|---|
private |
No (nel file/ambito) | No |
fileprivate |
No (nel file) | No |
internal |
Sì (nel modulo) | Sì (nel modulo) |
public |
Sì (nel modulo) | Sì (nel modulo) |
open |
Sì (in qualsiasi modulo) | Sì (in qualsiasi modulo) |
final |
No | No |
Una classe o membro contrassegnato come final non può essere sovrascritto o ereditato, rendendolo finale. open fa l'opposto.