Junior
Koja je razlika između jednostavne klase i open klase u Swift-u?
sobes.tech АИ
Одговор од АИ
U Swift-u, podrazumevano, sve klase su final — ne mogu se naslediti. Da bi klasa bila naslediva, mora biti deklarisana kao open ili public, ali između njih postoje važne razlike:
open— najotvoreniji nivo pristupa. Klasa sa modifikatoromopenmože biti nasledjena i njene metode mogu biti prepisane kako unutar, tako i izvan modula.public— klasa je dostupna za korišćenje izvan modula, ali nasledjivanje i prepisivanje metoda je moguće samo unutar istog modula.
Tako, open klasa omogućava proširenje i promenu ponašanja u drugim modulima, dok obična (npr. public) — ne.
Primer:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// U drugom modulu, može se naslediti od OpenClass i prepisati greet(),
// ali ne i od PublicClass.