Junior
¿Cuál es la diferencia entre una clase simple y una clase open en Swift?
sobes.tech AI
Respuesta de la IA
En Swift, por defecto, todas las clases son final — no se pueden heredar. Para que una clase pueda ser heredada, debe declararse como open o public, pero hay diferencias importantes entre ellas:
open— el nivel de acceso más abierto. Una clase con el modificadoropenpuede ser heredada y sus métodos pueden ser sobreescritos tanto dentro como fuera del módulo.public— la clase está disponible para su uso fuera del módulo, pero heredarla y sobreescribir métodos solo es posible dentro del mismo módulo.
Por lo tanto, una clase open permite ampliar y modificar el comportamiento en otros módulos, mientras que una clase simple (por ejemplo, public) no.
Ejemplo:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// En otro módulo, se puede heredar de OpenClass y sobreescribir greet(),
// pero no de PublicClass.