
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.