Was bedeutet das Schlüsselwort `open` in Swift und wie unterscheidet es sich von `public`?
Hallo zusammen! Ich habe vor kurzem angefangen, Swift zu lernen, und bin bei den Zugriffsmodifikatoren verwirrt. In der Dokumentation habe ich über `public`, `internal`, `fileprivate` und `private` gelesen, bin dann aber auf `open` gestoßen. \n\nIch verstehe, dass `public` eine Klasse oder Methode aus einem anderen Modul zugänglich macht. Aber wozu braucht man dann `open`? Macht `public` nicht dasselbe? \n\nHier ein Beispiel: Ich habe mein eigenes Framework erstellt und möchte, dass Benutzer meine Klasse nicht nur verwenden, sondern auch von ihr erben können. Wenn ich `public` setze, ist die Klasse sichtbar, aber der Compiler erlaubt keine Vererbung. Wenn ich `open` setze, ist die Vererbung erlaubt. Warum ist das so?\n\nMich verwirrt auch, dass `open` nur auf Klassen und Klassenmember angewendet werden kann. Für Strukturen und Protokolle wird `open` meines Wissens nicht verwendet. Stimmt das?\n\nUnd noch eine Frage: Wenn ich eine normale App (kein Framework) schreibe, muss ich dann überhaupt `open` verwenden? Oder reicht `public`?\n\nIch wäre dankbar für eine Erklärung mit Beispielen, weil in der offiziellen
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen