"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi Go ne prend-il pas en charge l'héritage traditionnel ?

Pourquoi Go ne prend-il pas en charge l'héritage traditionnel ?

Publié le 2024-11-08
Parcourir:574

 Why Doesn\'t Go Support Traditional Inheritance?

Héritage dans Go

Pourquoi Go ne prend-il pas en charge l'héritage de type traditionnel ?

Traditionnel L'héritage de type, où une sous-classe hérite des définitions d'une ou plusieurs classes parentes, n'est pas une fonctionnalité du langage de programmation Go.

Raison d'être des créateurs

Dans le Go FAQ, les créateurs du langage expliquent que les langages de programmation orientés objet mettent souvent l'accent sur la définition de relations entre les types, qui peuvent être automatiquement déduites dans Go. Au lieu de spécifier explicitement des relations de types, les types Go satisfont automatiquement toute interface qui spécifie un sous-ensemble de leurs méthodes.

Avantages de l'approche de Go

Cette approche offre plusieurs avantages :

  • Comptabilité simplifiée : Il n'est pas nécessaire de déclarer explicitement les relations de type.
  • Flexibilité de l'interface : Les types peuvent satisfaire plusieurs interfaces à la fois, évitant les complexités de l'héritage multiple traditionnel.
  • Interfaces légères : Les interfaces peuvent avoir une ou zéro méthode, permettant l'expression de concepts utiles sans avoir besoin d'annotations de type supplémentaires.
  • Flexibilité pour les changements : Des interfaces peuvent être ajoutées après coup, offrant une flexibilité pour de nouvelles idées ou des tests sans modifier les types d'origine.
  • Absence de hiérarchie des types : Le l'absence de relations explicites entre les types élimine le besoin de gérer ou de discuter des hiérarchies de types.

Principe alternatif

Go promeut le principe de composition plutôt que d'héritage. Cela implique de créer de nouveaux types en composant des types existants, plutôt que d'utiliser l'héritage pour créer un nouveau type avec toutes les fonctionnalités de ses types parents.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3