Recherche…
Remarques
Remarque: l'héritage à plusieurs niveaux est autorisé dans Java mais pas dans l'héritage multiple. En savoir plus sur http://beginnersbook.com/2013/04/oops-concepts/
Héritage - Définition
L'héritage est l'un des principaux concepts de la programmation orientée objet (OOP) . En utilisant l'héritage, nous pouvons modéliser correctement un problème et réduire le nombre de lignes à écrire. Voyons voir l'héritage en utilisant un exemple populaire.
Considérez que vous devez modéliser le règne animal (règne animal simplifié, bien sûr. Biologistes, pardonnez-moi) en utilisant la POO. Il y a beaucoup d'espèces d'animaux, certaines ont des caractéristiques uniques, tandis que d'autres partagent les mêmes caractéristiques.
Il y a des familles principales d'animaux. Disons, Mammals , Reptiles .
Ensuite, nous avons des enfants de ces familles. À titre d'exemple,
-
Cat, leDoget leLionsont des mammifères. -
CobraetPythonsont des reptiles.
Chaque animal partage certaines caractéristiques de base comme eat , drink , move . Nous pouvons donc dire que nous pouvons avoir un parent appelé Animal partir duquel ils peuvent hériter de ces fonctionnalités de base.
Ensuite, ces familles partagent également certaines caractéristiques. Par exemple, les reptiles utilisent le crawling pour se déplacer. Chaque mammifère est fed milk aux premiers stades de la vie.
Ensuite, il y a des caractéristiques uniques pour chaque animal.
Pensez à créer ces espèces animales séparément. Nous devons écrire le même code encore et encore dans chaque espèce animale. Au lieu de cela, nous utilisons l'héritage. Nous pouvons modéliser le règne animal comme suit:
- Nous pouvons avoir un objet parent appelé
Animal, qui possède les caractéristiques de base de tous les animaux. -
Mammalet lesReptile(bien sûr les autres familles d'animaux également) possèdent des caractéristiques communes tout en héritant des caractéristiques de base de l'objet parent,Animal. - Objets d'espèces animales:
CatetDoghéritent d'un objetMammal,CobraetPythonhéritent d'un objetReptile, et ainsi de suite.
Sous cette forme, nous pouvons réduire le code que nous écrivons, car nous n'avons pas besoin de définir les caractéristiques de base des animaux dans chaque espèce animale, car nous pouvons les définir dans l'objet Animal et ensuite les hériter. Même chose avec les familles d'animaux.
Exemple d'héritage - Considérez ci-dessous deux classes
Classe d'enseignant:
class Teacher {
private String name;
private double salary;
private String subject;
public Teacher (String tname) {
name = tname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getSubject() {
return subject;
}
}
Classe OfficeStaff:
class OfficeStaff{
private String name;
private double salary;
private String dept;
public OfficeStaff (String sname) {
name = sname;
}
public String getName() {
return name;
}
private double getSalary() {
return salary;
}
private String getDept () {
return dept;
}
}
- Les deux classes partagent quelques propriétés et méthodes communes. Donc répétition du code.
- Création d'une classe contenant les méthodes et propriétés communes.
- Les classes Teacher et OfficeStaff peuvent hériter de toutes les propriétés et méthodes communes de la classe Employee inférieure.
Classe d'employé:
class Employee{
private String name;
private double salary;
public Employee(String ename){
name=ename;
}
public String getName(){
return name;
}
private double getSalary(){
return salary;
}
}
- Ajout de méthodes et de propriétés individuelles Une fois que nous avons créé une super classe qui définit les attributs communs à un ensemble d'objets, elle peut être utilisée pour créer un nombre quelconque de sous-classes plus spécifiques.
- Toutes les classes similaires, telles que Engineer, Principal, peuvent être générées en tant que sous-classes de la classe Employee.
- La classe parente est appelée super classe et la classe héritée est la sous-classe
- Une sous-classe est la version spécialisée d'une super-classe - Elle hérite de toutes les variables et méthodes d'instance définies par la super-classe et ajoute ses propres éléments uniques.
- Bien qu'une sous-classe inclue tous les membres de sa super-classe, elle ne peut pas accéder aux membres de la super-classe déclarés comme privés.
- Une variable de référence d'une super-classe peut être assignée à une référence à toute sous-classe dérivée de cette super-classe, par exemple Employee emp = new Teacher ();