Sobes.tech
Junior — Middle

Wat is het verschil tussen de toegangsmutators public en open in de programmeertaal Swift?

sobes.tech AI

Antwoord van AI

In Swift, de toegangsmutators public en open stellen beide het gebruik van een klasse of methode buiten de module toe, maar er is een belangrijk verschil:

  • public staat toe dat de klasse of methode buiten de module wordt gebruikt, maar staat geen overerving of overschrijving buiten de module toe.
  • open staat niet alleen gebruik toe, maar ook overerving van klassen en overschrijving van methoden buiten de module.

Met andere woorden, als je wilt dat je klasse kan worden uitgebreid en overschreven in andere modules, gebruik dan open. Als je alleen toegang tot de klasse of methode wilt bieden zonder overerving, gebruik dan public.

Voorbeeld:

public class PublicClass {
    public func method() {}
}

open class OpenClass {
    open func method() {}
}

// In een andere module:
// class SubClass: PublicClass {} // Fout: kan niet erven
// class SubClass: OpenClass {} // Toegestaan