Junior
Care este diferența dintre o clasă simplă și o clasă open în Swift?
sobes.tech AI
Răspuns de la AI
În Swift, în mod implicit, toate clasele sunt final — nu pot fi moștenite. Pentru ca o clasă să poată fi moștenită, trebuie declarată ca open sau public, dar există diferențe importante între ele:
open— cel mai deschis nivel de acces. O clasă cu modificatorulopenpoate fi moștenită și metodele sale pot fi suprascrise atât în interiorul, cât și în afara modulului.public— clasa este disponibilă pentru utilizare în afara modulului, dar moștenirea și suprascrierea metodelor sunt posibile doar în același modul.
Astfel, o clasă open permite extinderea și modificarea comportamentului în alte module, în timp ce o clasă simplă (de exemplu, public) — nu.
Exemplu:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// În alt modul, se poate moșteni de la OpenClass și suprascrie greet(),
// dar nu și de la PublicClass.