Sobes.tech
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.