Junior
Каква е разликата между прост клас и open клас в Swift?
sobes.tech AI
Отговор от AI
В Swift по подразбиране всички класове са final — не могат да бъдат наследени. За да може един клас да бъде наследен, трябва да бъде обявен като open или public, но между тях има важни разлики:
open— най-отвореният ниво на достъп. Клас с модификаторopenможе да бъде наследен и методите му могат да бъдат презаписвани както вътре, така и извън модула.public— класът е достъпен за използване извън модула, но наследяването и презаписването на методи е възможно само вътре в същия модул.
Така, open клас позволява разширяване и промяна на поведението в други модули, докато прост (например, public) — не.
Пример:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// В друг модул може да наследите OpenClass и да презапишете greet(),
// но не и PublicClass.