Junior
Qual é a diferença entre uma classe simples e uma classe open em Swift?
sobes.tech IA
Resposta da IA
No Swift, por padrão, todas as classes são final — não podem ser herdadas. Para que uma classe possa ser herdada, ela deve ser declarada como open ou public, mas há diferenças importantes entre elas:
open— o nível de acesso mais aberto. Uma classe com o modificadoropenpode ser herdada e seus métodos podem ser sobrescritos tanto dentro quanto fora do módulo.public— a classe está disponível para uso fora do módulo, mas herdar e sobrescrever métodos só é possível dentro do mesmo módulo.
Assim, uma classe open permite expandir e modificar o comportamento em outros módulos, enquanto uma classe simples (por exemplo, public) não.
Exemplo:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// Em outro módulo, é possível herdar de OpenClass e sobrescrever greet(),
// mas não de PublicClass.