Maison >Java >javaDidacticiel >Héritage et polymorphisme en Java : utilisation des superclasses et des sous-classes
Cet article explique comment l'héritage de Java a une relation « est-un » entre les superclasses et les sous-classes, permettant aux sous-classes d'hériter et de personnaliser les fonctionnalités des superclasses. En utilisant le polymorphisme, les sous-classes peuvent définir des comportements uniques, permettant la réutilisation du code et la flexibilité dans la programmation orientée objet.
En Java, la relation entre les super-classes (classe parent) et les sous-classes (classe enfant ou classe dérivée) en héritage est une relation est-a impliquant que la sous-classe est une version spécialisée de la superclasse héritant de la fonctionnalité (des restrictions peuvent être appliqué) d’une classe dont il est dérivé (CSU Global, s.d). En d’autres termes, si la classe B hérite de la classe A, alors la classe B « est un » type de classe A. Cette relation permet à la classe B d’utiliser toutes les fonctionnalités (des restrictions peuvent être appliquées) fournies par la classe A, tout en y ajoutant ses propres fonctionnalités. des fonctionnalités spécifiques ou/et en remplaçant tout ou partie des fonctionnalités de la classe A. La capacité de la classe enfant à remplacer les fonctionnalités est une forme de polymorphisme.
« La définition du polymorphisme dans le dictionnaire fait référence à un principe de biologie dans lequel un organisme ou une espèce peut avoir de nombreuses formes ou stades différents. Ce principe peut également être appliqué à la programmation orientée objet et aux langages comme le langage Java. Les sous-classes d'une classe peuvent définir leurs propres comportements uniques tout en partageant certaines des mêmes fonctionnalités de la classe parent » (The Java™ Tutorials, s.d.). Ceci est particulièrement bénéfique lorsqu'il s'agit de plusieurs objets de différentes sous-classes qui partagent un type de superclasse commun.
Par exemple : les chiens, les chats et les hiboux sont des animaux :
Superclasse
public class Animal { public void makeSound() { System.out.println("Makes a Sound"); } }
Sous-classe d'animaux
public class Domesticated extends Animal { public void friendly() { System.out.println("This animal is friendly."); } }
Sous-classe des Domestiqués
public class Undomesticated extends Animal { public void notFriendly() { System.out.println("This animal is not friendly."); } }
Sous-classe des Domestiqués
public class Cat extends Domesticated { @Override public void makeSound() { System.out.println("Meow"); } }
Sous-classe des Indomestiqués
public class Owl extends Undomesticated { @Override public void makeSound() { System.out.println("Hoots"); } }
Classe principale pour afficher le résultat
public class inheritanceExample { public static void main(String[] args) { Dog myDog = new Dog(); Cat myCat = new Cat(); Owl redOwl = new Owl(); System.out.println("MY Dog:"); myDog.makeSound(); // Outputs: Bark myDog.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("My Cat:"); myCat.makeSound(); // Outputs: Meow myCat.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("Red Owl:"); redOwl.makeSound(); // Outputs: Hoot redOwl.notFriendly(); // Outputs: This animal is not friendly. } }
Remarque : les méthodes makeSound() des classes Dog et Cat remplacent la méthode makeSound() de la classe Animal.
De plus, la classe Chien est une sous-classe de la classe Domestique qui est une sous-classe de la classe Animal.
Enfant de '→'
En Java, une sous-classe ne peut avoir qu'une seule superclasse, par exemple, la classe Chien ne peut pas avoir une superclasse Domestiqué et une superclasse Animal, ce qui suit n'est pas autorisé.
En d'autres termes, une sous-classe ne peut avoir qu'une seule superclasse,… et elle n'est pas autorisée à avoir plusieurs parents, grands-parents ou arrière-grands-parents.
En conclusion, l'héritage de Java permet aux sous-classes d'utiliser et d'étendre les fonctionnalités des superclasses, incarnant la relation « est-un » et facilitant le polymorphisme. Cela améliore la réutilisabilité, la flexibilité et la cohérence du code en permettant des comportements spécifiques dans les sous-classes tout en conservant les caractéristiques partagées dans une superclasse commune.
Références :
CUS Global (s.d.). Module 1 : Travailler avec l'héritage [Conférence interactive]. À la Colorado State University Global, CSC372 : Programmation II, Département d'informatique. Toile. Récupéré le 8 juin 2024 sur https://csuglobal.instructure.com/courses/94948/pages/module-1-overview?module_item_id=4868813
Les didacticiels Java™ (s.d.). Apprentissage du langage Java : Interfaces et héritage. Oracle. Récupéré le 8 juin 2024 sur https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html
Publié à l'origine sur Alex.omegapy sur Medium publié par Level UP Coding le 1er novembre 2024.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!