Junior — Middle
Quelles caractéristiques communes unissent les classes et les interfaces en programmation orientée objet?
sobes.tech IA
Réponse de l'IA
Les classes et les interfaces en programmation orientée objet partagent plusieurs caractéristiques communes :
- Abstraction : Les deux permettent de décrire des types de données abstraits, en cachant les détails de l'implémentation.
- Définition du comportement : Tant les classes que les interfaces définissent un ensemble de méthodes qui doivent être implémentées.
- Polymorphisme : À travers les classes et les interfaces, il est possible d'implémenter un comportement polymorphe, permettant d'utiliser des objets de différents types de manière uniforme.
- Typage : Les deux servent à définir des types qui peuvent être utilisés pour déclarer des variables et des paramètres de fonctions.
En Go, les interfaces définissent un ensemble de méthodes, et il n'existe pas de classe en tant que telle, mais des structures avec des méthodes jouent le rôle de classes. Les interfaces décrivent le comportement, et les structures contiennent les données et l'implémentation.
Exemple en Go :
// Interface
type Reader interface {
Read(p []byte) (n int, err error)
}
// Structure avec une méthode qui implémente l'interface
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implémentation
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}