Junior — Middle
Explique le mécanisme et les caractéristiques de l'héritage en programmation orientée objet.
sobes.tech IA
Réponse de l'IA
En programmation orientée objet (POO), l'héritage permet de créer une nouvelle classe basée sur une classe existante, en héritant ses propriétés et méthodes. Cela favorise la réutilisation du code et l'organisation hiérarchique des objets.
Caractéristiques de l'héritage :
- Hiérarchie des classes : la sous-classe (héritière) étend ou redéfinit le comportement de la super-classe (parent).
- Polymorphisme : les objets de la sous-classe peuvent être utilisés là où un objet de la super-classe est attendu.
- Encapsulation : l'héritage ne viole pas le principe de dissimulation des données, mais la sous-classe a accès aux membres protégés et publics de la super-classe.
En Go, il n'y a pas d'héritage direct de classes, mais il existe la composition et les interfaces qui permettent de réaliser des modèles similaires.
Exemple en Go avec composition :
type Animal struct {
Name string
}
func (a Animal) Speak() string {
return "..."
}
// Dog "hérite" de Animal via embedding
// et peut redéfinir la méthode Speak
type Dog struct {
Animal
}
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
dog := Dog{Animal{Name: "Buddy"}}
fmt.Println(dog.Name) // Buddy
fmt.Println(dog.Speak()) // Woof!
}