Junior
Mis vahe on open ja public?
sobes.tech AI
Vastus AI-lt
open võimaldab pärandada ja üle kirjutada liikmeid igas modulites, samas kui public võimaldab kasutada liikmeid igas modulites, kuid pärandamine ja üle kirjutamine on lubatud ainult samas modulites, kus liige on deklareeritud.
| Omadus | open |
public |
|---|---|---|
| Juurdepääs | Igas modulites | Igas modulites |
| Pärandamine | Igas modulites | Ainult oma modulites |
| Üle kirjutamine | Igas modulites | Ainult oma modulites |
Näide:
// Modul A
open class OpenClass {
open func openMethod() { }
public func publicMethod() { }
}
public class PublicClass {
public func publicMethod() { }
}
// Modul B
import ModuleA
class SubclassOfOpen: OpenClass {
override func openMethod() {
// Võimalik modul B-s
}
// Viga: publicMethod on lubatud kasutada, kuid mitte üle kirjutada väljaspool Moduli A
// override func publicMethod() { }
}
// Viga: PublicClass ei võimalda pärandamist väljaspool Moduli A
// class SubclassOfPublic: PublicClass { }