Junior
Wat is het verschil tussen open en public?
sobes.tech AI
Antwoord van AI
open staat toe dat leden geërfd en overschreven kunnen worden in elke module, terwijl public het gebruik van leden in elke module toestaat, maar overerving en overschrijving alleen binnen dezelfde module waar het lid is gedeclareerd, toegestaan zijn.
| Kenmerk | open |
public |
|---|---|---|
| Toegang | Elke module | Elke module |
| Overerving | Elke module | Alleen in eigen module |
| Overschrijving | Elke module | Alleen in eigen module |
Voorbeeld:
// Module A
open class OpenClass {
open func openMethod() { }
public func publicMethod() { }
}
public class PublicClass {
public func publicMethod() { }
}
// Module B
import ModuleA
class SubclassOfOpen: OpenClass {
override func openMethod() {
// Mogelijk in Module B
}
// Fout: publicMethod is toegestaan te gebruiken, maar niet te overschrijven buiten Module A
// override func publicMethod() { }
}
// Fout: PublicClass staat geen overerving buiten Module A toe
// class SubclassOfPublic: PublicClass { }