En plus d’avoir des exigences de propriété, un protocole peut avoir des exigences de méthodes. Mais pourquoi? Reprenons l’exemple de notre oiseau et de notre avion. Tous 2 se conforment au protocole Voler. Pour ne pas oublier des méthodes et des propriétés obligatoire à voler, nous avons des exigences. La première était un type d’ailes. Nous pouvons avoir des méthodes exigées pour voler comme planer, décoller, atterri. Les 2 objets le font .

Ajoutons les:

protocol Voler {
    //Propriétés
    var typeAiles: String { get set }
    //Méthodes
    func planer()
    func decoller()
    func atterir()
}
class Oiseau: Voler {
    var typeAiles: String = “Plumes”
    func decoller() {
        //Regard a gauche et a droite
        //Battement d’ailes
    }
    func planer() {
        //Observer le paysage
    }
    func atterir() {
        //Faire attention a bien évaluer le sol
        //Rentrer les ailes
    }
}
class Avion: Voler {
    var typeAiles: String = “Acier”
    func decoller() {
        //Lecture des consignes de sécurité
        //Dégagement de la piste
        //Décollage
        //Beaucoup de bruit
    }
    func planer() {
        //servir boissons
        //regarder un film
    }
    func atterir() {
        //Attacher les ceintures
        //Applaudir le pilote
    }
} 

Nos 2 objets ont du implémenter ces 2 méthodes, avec des choses bien différentes à l’intérieur, mais ce sont des méthodes essentielles pour voler.