Sobes.tech
Junior

Kann man eine Struktur von mehreren Eltern erben?

sobes.tech KI

Antwort von AI

Nein. In Objective-C und Swift unterstützen keine Strukturen Mehrfachvererbung.

In Swift verfügen Strukturen über umfangreiche Möglichkeiten, einschließlich Protokollen, Erweiterungen, Methoden, berechneten Eigenschaften, gespeicherten Eigenschaften und Initialisierern.

Um jedoch ähnliche Ziele in Swift zu erreichen, werden verwendet:

  • Protokolle: Definieren eine Reihe von Anforderungen (Methoden, Eigenschaften, Initialisierer). Ein Typ (Struktur oder Klasse) kann mehreren Protokollen entsprechen und somit deren "Verhalten" übernehmen.

    // Beispiel für ein Protokoll
    protocol Animal {
        var name: String { get }
        func makeSound()
    }
    
    // Struktur, die das Protokoll erfüllt
    struct Dog: Animal {
        let name: String
    
        func makeSound() {
            print("Wuff!")
        }
    }
    
  • Erweiterungen: Fügen einem bestehenden Typ neue Funktionen hinzu, ohne dessen Quellcode zu ändern.

    // Beispiel für eine Erweiterung für String
    extension String {
        func reversedWords() -> String {
            let words = self.split(separator: " ")
            return words.reversed().joined(separator: " ")
        }
    }
    
    // Verwendung der Erweiterung
    let sentence = "Hallo Welt"
    print(sentence.reversedWords()) // Ausgabe: Welt Hallo
    

Klassen in Swift unterstützen einfache Vererbung von einer Elternklasse, können aber mehrere Protokolle implementieren.