L'héritage est un concept important de la programmation orientée objet. Il permet aux objets de définir des relations entre eux. Comme son nom l'indique, un objet peut hériter des caractéristiques d'un autre objet.
Plus concrètement, un objet est capable de transmettre son état et ses comportements à ses enfants. Pour que l'héritage fonctionne, les objets doivent avoir des caractéristiques communes entre eux..
En Java, les classes peuvent être prises à partir d'autres classes, qui peuvent être prises à partir d'autres, et ainsi de suite. En effet, ils peuvent hériter des fonctionnalités de la classe au-dessus, jusqu'à la classe d'objet la plus élevée.
Disons que nous créons une classe appelée Humain qui représente nos caractéristiques physiques. C'est une classe générique qui pourrait vous représenter, moi ou n'importe qui dans le monde. Son état garde une trace de choses comme le nombre de jambes, le nombre de bras et le groupe sanguin. Il a des comportements comme manger, dormir et marcher.
L'homme est bon pour avoir une idée globale de ce qui nous rend tous pareils, mais il ne peut pas, par exemple, me parler des différences entre les sexes. Pour cela, nous aurions besoin de créer deux nouveaux types de classes appelés Homme et Femme. L'état et les comportements de ces deux classes différeront l'un de l'autre de nombreuses façons, à l'exception de ceux dont ils héritent de Human.
Par conséquent, l'héritage nous permet d'englober l'état et les comportements de la classe parent dans son enfant. La classe enfant peut ensuite étendre l'état et les comportements pour refléter les différences qu'elle représente. L'aspect le plus important de ce concept à retenir est que la classe enfant est une version plus spécialisée du parent.
Dans la relation entre deux objets, une superclasse est le nom donné à la classe dont on hérite. Cela ressemble à une classe super duper, mais rappelez-vous que c'est la version la plus générique. Les meilleurs noms à utiliser peuvent être la classe de base ou simplement la classe parent.
Pour prendre un exemple plus réel cette fois, nous pourrions avoir une superclasse appelée Personne. Son état contient le nom, l'adresse, la taille et le poids de la personne et a des comportements tels que faire du shopping, faire le lit et regarder la télévision.
Nous pourrions créer deux nouvelles classes héritant de la personne appelée étudiant et travailleur. Ce sont des versions plus spécialisées, car même si elles ont des noms, des adresses, regardent la télévision et font du shopping, elles ont également des caractéristiques différentes les unes des autres..
Le travailleur pourrait avoir un État qui détient un titre de poste et un lieu de travail tandis que l'étudiant pourrait détenir des données sur un domaine d'études et une institution d'apprentissage.
Imaginez que vous définissiez une classe Person:
Public class Person
Une nouvelle classe peut être créée en étendant cette classe:
public class Employee étend Person
La classe Person serait la superclasse de la classe Employee.