13.13 Héritage et polymorphisme en Java : classes internes et héritage

13.13 Héritage et polymorphisme en Java : classes internes et héritage

La programmation orientée objet (POO) est un paradigme de développement qui permet aux programmeurs de créer des programmes basés sur le concept d'« objets », pouvant contenir des données et des méthodes permettant de manipuler ces données. Java, étant un langage orienté objet, offre des mécanismes robustes pour implémenter l'héritage et le polymorphisme, y compris l'utilisation de classes internes. Dans ce chapitre, nous explorerons comment l'héritage et le polymorphisme se manifestent dans le contexte des classes internes en Java.

Héritage en Java

L'héritage est un principe fondamental de la POO qui vous permet de créer une nouvelle classe basée sur une classe existante. La nouvelle classe, appelée classe dérivée ou sous-classe, hérite des attributs et des méthodes de la classe de base, également appelée superclasse. En Java, l'héritage s'effectue avec le mot-clé extends.

Classes internes

En Java, il est possible de définir une classe au sein d'une autre classe. Celles-ci sont appelées classes internes et peuvent être classées en quatre types :

  • Classe interne standard : une classe définie dans la portée d'une autre classe.
  • Classe interne statique : une classe interne déclarée comme statique. Il est accessible sans avoir besoin d'une instance de la classe externe.
  • Classe interne locale : classe définie dans un bloc de code, telle qu'une méthode.
  • Classe anonyme : classe sans nom définie et instanciée dans une seule expression.

Héritage avec les classes internes

Lorsqu'une classe interne étend une autre classe, elle hérite de ses attributs et méthodes. Cela permet la réutilisation du code et la création de hiérarchies de classes plus complexes. De plus, une classe interne peut accéder aux membres de sa classe externe, même s'ils sont privés.

Prenons l'exemple suivant :

classe publique Externe { message de chaîne privé = "Bonjour tout le monde !"; La classe interne étend OtherClass { void displayMessage() { System.out.println(message); // Accès au membre privé de la classe externe } } } classe AutreClasse { public void uneMéthode() { // Mise en œuvre } }

La classe Internal est une classe interne de la classe External et étend OtherClass. Il peut accéder au message membre privé de la classe External sans aucun problème.

Polymorphisme

Le polymorphisme est un autre concept clé de la POO qui permet à un objet d'être traité comme une instance de sa propre classe ou de toute classe dont il hérite. En Java, le polymorphisme est généralement implémenté via des méthodes et des interfaces de remplacement.

Lorsqu'une classe interne remplace une méthode de sa superclasse, elle utilise le polymorphisme pour fournir une implémentation spécifique de cette méthode. Ceci est particulièrement utile lorsque l'on souhaite modifier le comportement des méthodes héritées dans des contextes spécifiques de la classe externe.

Voir l'exemple suivant :

classe publique Externe { // ... autres membres de la classe Externe ... La classe interne étend OtherClass { @Passer outre public void uneMéthode() { System.out.println("Méthode écrasée dans la classe interne."); } } }

Dans l'exemple ci-dessus, la classe Internal remplace la méthode someMethod de la classe OutraClass. Lorsqu'un objet de la classe Internal appelle someMethod, la version remplacée est exécutée.

Considérations finales

L'héritage et le polymorphisme sont des concepts puissants qui vous permettent de créer du code réutilisable et extensible. Les classes internes en Java offrent un moyen d'organiser le code de manière plus étroite et intégrée à la classe externe, tout en conservant la possibilité d'hériter d'autres classes et d'implémenter le polymorphisme.

Il est important de noter que bien que les classes internes puissent accéder à tous les membres (y compris privés) de la classe externe, la classe externe n'a pas d'accès direct aux membres de la classe interne. De plus, l'utilisation de classes internes doit être bien pensée, car elles peuvent compliquer la conception de votre programme si elles sont utilisées sans discrétion.

Comprendre comment l'héritage et le polymorphisme fonctionnent en conjonction avec les classes internes est essentiel pour tout développeur Java qui souhaite maîtriser le langage et écrire du code efficace et organisé.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes concernant les classes internes en Java est correcte d'après le texte donné ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Héritage et polymorphisme en Java : principe de substitution de Liskov

Page suivante de lebook gratuit :

98Héritage et polymorphisme en Java : principe de substitution de Liskov

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte