Sobes.tech
Junior — Middle

¿Qué regla determina la disponibilidad de Open Class, si es público o privado?

sobes.tech AI

Respuesta de la IA

En Swift, la palabra clave open define el nivel de acceso más alto para clases y sus miembros. Una clase declarada como open está disponible para su uso y herencia no solo dentro del módulo donde se declara, sino también desde otros módulos. Esto significa que una clase open es pública y puede ser extendida y sobrescrita fuera del módulo.

Reglas de acceso para una clase open:

  • Disponible desde cualquier módulo (pública).
  • Puede ser heredada y sobrescrita fuera del módulo.

A diferencia de public, que permite usar la clase fuera del módulo pero no permite heredar o sobrescribir fuera del módulo, open ofrece la máxima flexibilidad para extender.

Ejemplo:

open class Vehicle {
    open func start() {
        print("Vehicle started")
    }
}

// En otro módulo, se puede heredar y sobrescribir
class Car: Vehicle {
    override func start() {
        print("Car started")
    }
}