Ajouter des attributs et des implémentations par défaut dans les interfaces

Précédemment, les interfaces ont été qualifiées de classes 100 % abstraites dans lesquelles on n’écrit que les signatures des méthodes du contrat. Les interfaces ne sont en réalité pas aussi simplistes que cela et peuvent également porter des attributs et des méthodes non abstraites.

1. Les méthodes non abstraites

Comme nous le faisons dans une classe abstraite, il est possible d’ajouter des méthodes non abstraites dans une interface. Les classes qui implémentent alors cette interface peuvent faire le choix de conserver le comportement par défaut ou de surcharger ce comportement en redéfinissant le corps de la méthode. Exactement comme nous l’avons fait dans le chapitre L’héritage à la section Le polymorphisme.

Afin d’illustrer ces propos, modifions légèrement l’interface Domestic. La méthode qui permet à un animal de lécher a dorénavant une implémentation par défaut :

interface Domestic 
{ 
 
 fun snuggle() 
 
 fun lick() 
 { 
   println("lick! Lick!") 
 } 
 
} 

C’est tout ! Libre à vous ensuite de surcharger la méthode dans une classe qui implémente l’interface.

2. Les attributs abstraits

En Kotlin, les interfaces...

couv_RIKOT.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Implémenter une interface
Suivant
La covariance