Chapitre 6. L'héritage
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
Les classes C# prennent en charge l'héritage, un mécanisme populaire de réutilisation du code orienté objet. Lorsque tu écris une classe, tu peux éventuellement spécifier une classe de base. Ta classe en dérivera, ce qui signifie que tout ce qui se trouve dans la classe de base sera présent dans ta classe, ainsi que tous les membres que tu ajouteras.
Les classes et les types d'enregistrement basés sur les classes ne prennent en charge que l'héritage simple (tu ne peux donc spécifier qu'une seule classe de base). Les interfaces offrent une forme d'héritage multiple. Les types de valeurs, y compris les types record struct, ne prennent pas du tout en charge l'héritage. L'une des raisons en est que les types de valeur ne sont normalement pas utilisés par référence, ce qui supprime l'un des principaux avantages de l'héritage : le polymorphisme à l'exécution. L'héritage n'est pas nécessairement incompatible avec un comportement de type valeur - certains langages le gèrent - mais il pose souvent des problèmes. Par exemple, l'affectation d'une valeur d'un type dérivé à une variable de son type de base entraîne la perte de tous les champs ajoutés par le type dérivé, un problème connu sous le nom de découpage en tranches. C# contourne ce problème en limitant l'héritage aux types de référence. Lorsque tu assignes une variable d'un type ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access