Junior
¿La clase open es final o no final?
sobes.tech AI
Respuesta de la IA
No final. La palabra clave open indica claramente que puedes heredar de esta clase y sobrescribir sus miembros.
open class BaseClass {
open func someMethod() {
// Implementación predeterminada
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Implementación sobrescrita
}
}
Comparemos con otros modificadores de acceso:
| Modificador | Herencia | Sobrescribir miembros |
|---|---|---|
private |
No (dentro del archivo/área de alcance) | No |
fileprivate |
No (dentro del archivo) | No |
internal |
Sí (dentro del módulo) | Sí (dentro del módulo) |
public |
Sí (dentro del módulo) | Sí (dentro del módulo) |
open |
Sí (en cualquier módulo) | Sí (en cualquier módulo) |
final |
No | No |
Una clase o miembro marcado como final no puede ser sobrescrito ni heredado, haciéndolo final. open hace lo contrario.