Maison Java javaDidacticiel Héritage et polymorphisme en Java : utilisation des superclasses et des sous-classes

Héritage et polymorphisme en Java : utilisation des superclasses et des sous-classes

Jan 06, 2025 am 10:31 AM

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");
    }
}
Copier après la connexion

Sous-classe d'animaux

public class Domesticated extends Animal {
    public void friendly() {
        System.out.println("This animal is friendly.");
    }
}
Copier après la connexion

Sous-classe des Domestiqués

public class Undomesticated extends Animal {
    public void notFriendly() {
        System.out.println("This animal is not friendly.");
    }
}
Copier après la connexion

Sous-classe des Domestiqués

public class Cat extends Domesticated {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}
Copier après la connexion

Sous-classe des Indomestiqués

public class Owl extends Undomesticated {
    @Override
    public void makeSound() {
        System.out.println("Hoots");
    }
}
Copier après la connexion

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.
     }
}
Copier après la connexion

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 '→'
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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é.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1673
14
Tutoriel PHP
1277
29
Tutoriel C#
1257
24
Le logiciel de sécurité de l'entreprise entraîne-t-il l'exécution de l'application? Comment dépanner et le résoudre? Le logiciel de sécurité de l'entreprise entraîne-t-il l'exécution de l'application? Comment dépanner et le résoudre? Apr 19, 2025 pm 04:51 PM

Dépannage et solutions au logiciel de sécurité de l'entreprise qui fait que certaines applications ne fonctionnent pas correctement. De nombreuses entreprises déploieront des logiciels de sécurité afin d'assurer la sécurité des réseaux internes. ...

Comment convertir les noms en nombres pour implémenter le tri et maintenir la cohérence en groupes? Comment convertir les noms en nombres pour implémenter le tri et maintenir la cohérence en groupes? Apr 19, 2025 pm 11:30 PM

Solutions pour convertir les noms en nombres pour implémenter le tri dans de nombreux scénarios d'applications, les utilisateurs peuvent avoir besoin de trier en groupe, en particulier en un ...

Comment simplifier les problèmes de cartographie des champs dans l'amarrage du système à l'aide de mapstruct? Comment simplifier les problèmes de cartographie des champs dans l'amarrage du système à l'aide de mapstruct? Apr 19, 2025 pm 06:21 PM

Le traitement de la cartographie des champs dans l'amarrage du système rencontre souvent un problème difficile lors de l'exécution d'amarrage du système: comment cartographier efficacement les champs d'interface du système a ...

Comment Intellij Idea identifie-t-elle le numéro de port d'un projet de démarrage de printemps sans publier un journal? Comment Intellij Idea identifie-t-elle le numéro de port d'un projet de démarrage de printemps sans publier un journal? Apr 19, 2025 pm 11:45 PM

Commencez le printemps à l'aide de la version IntelliJideaultimate ...

Comment obtenir élégamment des noms de variables de classe d'entité pour créer des conditions de requête de base de données? Comment obtenir élégamment des noms de variables de classe d'entité pour créer des conditions de requête de base de données? Apr 19, 2025 pm 11:42 PM

Lorsque vous utilisez MyBatis-Plus ou d'autres cadres ORM pour les opérations de base de données, il est souvent nécessaire de construire des conditions de requête en fonction du nom d'attribut de la classe d'entité. Si vous manuellement à chaque fois ...

Comment convertir en toute sécurité les objets Java en tableaux? Comment convertir en toute sécurité les objets Java en tableaux? Apr 19, 2025 pm 11:33 PM

Conversion des objets et des tableaux Java: Discussion approfondie des risques et des méthodes correctes de la conversion de type de distribution De nombreux débutants Java rencontreront la conversion d'un objet en un tableau ...

Plateforme de commerce électronique SKU et conception de la base de données SPU: comment prendre en compte à la fois les attributs définis par l'utilisateur et les produits sans attribution? Plateforme de commerce électronique SKU et conception de la base de données SPU: comment prendre en compte à la fois les attributs définis par l'utilisateur et les produits sans attribution? Apr 19, 2025 pm 11:27 PM

Explication détaillée de la conception des tables SKU et SPU sur les plates-formes de commerce électronique Cet article discutera des problèmes de conception de la base de données de SKU et SPU dans les plateformes de commerce électronique, en particulier comment gérer les ventes définies par l'utilisateur ...

Comment utiliser la solution Redis Cache pour réaliser efficacement les exigences de la liste de classement des produits? Comment utiliser la solution Redis Cache pour réaliser efficacement les exigences de la liste de classement des produits? Apr 19, 2025 pm 11:36 PM

Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...

See all articles