Sobes.tech
Junior

Peut-on hériter d'une structure de plusieurs parents?

sobes.tech IA

Réponse de l'IA

Non. En Objective-C et Swift, les structures ne supportent pas l'héritage multiple.

En Swift, les structures disposent de capacités importantes, notamment les protocoles, extensions, méthodes, propriétés calculées, propriétés stockées et initialisateurs.

Cependant, pour atteindre des objectifs similaires en Swift, on utilise :

  • Protocoles : Définissent un ensemble d'exigences (méthodes, propriétés, initialisateurs). Un type (structure ou classe) peut se conformer à un ou plusieurs protocoles, acquérant ainsi leur "comportement".

    // Exemple de protocole
    protocol Animal {
        var name: String { get }
        func makeSound()
    }
    
    // Structure conforme au protocole
    struct Dog: Animal {
        let name: String
    
        func makeSound() {
            print("Woof!")
        }
    }
    
  • Extensions : Ajoutent de nouvelles fonctions à un type existant sans modifier son code source.

    // Exemple d'extension pour String
    extension String {
        func reversedWords() -> String {
            let words = self.split(separator: " ")
            return words.reversed().joined(separator: " ")
        }
    }
    
    // Utilisation de l'extension
    let sentence = "Bonjour le monde"
    print(sentence.reversedWords()) // Affiche : monde le Bonjour
    

Les classes en Swift supportent l'héritage simple d'une classe parente, mais peuvent implémenter plusieurs protocoles.