recherche
MaisonJavajavaDidacticielHé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 '→'
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
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
Performances JVM vs autres languesPerformances JVM vs autres languesMay 14, 2025 am 12:16 AM

Jvm'sperformance estcompatititivewithotherruntimes, offrant une élaboration de personnes, la sécurité et la productivité.1) jvmusjitcompilationfordynamicoptimizations.2) c offrant une performance de Nation

Indépendance de la plate-forme Java: exemples d'utilisationIndépendance de la plate-forme Java: exemples d'utilisationMay 14, 2025 am 12:14 AM

JavaachievesPlatformIndependencethroughthejavirtualmachine (jvm), permettant de codétorunonanyplatformwithajvm.1) codeiscompiledIntoBytecode, notmachine-specificcode.2) bytecodeisinterpretedythejvm

Architecture JVM: une plongée profonde dans la machine virtuelle JavaArchitecture JVM: une plongée profonde dans la machine virtuelle JavaMay 14, 2025 am 12:12 AM

ThejvMisanabstractComputingMachinecrucialForrunningJavapRogramsDuetOtsPlatform-IndependentArchitecture.

JVM: JVM est-il lié au système d'exploitation?JVM: JVM est-il lié au système d'exploitation?May 14, 2025 am 12:11 AM

Jvmhasacloselalationhipswiththeosasittranslatejavabytecodeintomachine-spécificifiCinstructions, gasmemory et handlesgarbagecollection.

Java: Écrivez une fois, courez n'importe où (WORA) - une plongée profonde dans l'indépendance de la plate-formeJava: Écrivez une fois, courez n'importe où (WORA) - une plongée profonde dans l'indépendance de la plate-formeMay 14, 2025 am 12:05 AM

L'implémentation Java "Écrire une fois, exécuter partout" est compilée en bytecode et s'exécute sur une machine virtuelle Java (JVM). 1) Écrivez du code Java et compilez-le en bytecode. 2) ByteCode s'exécute sur n'importe quelle plate-forme avec JVM installé. 3) Utilisez l'interface native Java (JNI) pour gérer les fonctions spécifiques à la plate-forme. Malgré des défis tels que la cohérence JVM et l'utilisation de bibliothèques spécifiques à la plate-forme, WORA améliore considérablement l'efficacité du développement et la flexibilité du déploiement.

Indépendance de la plate-forme Java: compatibilité avec différents SGIndépendance de la plate-forme Java: compatibilité avec différents SGMay 13, 2025 am 12:11 AM

JavaachievesPlatformIndependencethRoughthejavirtualmachine (JVM), permettant à la codétorunondiffférente de système

Quelles fonctionnalités rendent Java encore puissantQuelles fonctionnalités rendent Java encore puissantMay 13, 2025 am 12:05 AM

JavaispoWerfuetOitsPlatformIndependence, objet-orientednature, richstandardLibrary, performanceCapabilities et StrongSecurityFeatures.1) Platform IndependenenceSAplicationStorunonanyDevicesupportingJava.2)

Top Fonctionnalités Java: un guide complet pour les développeursTop Fonctionnalités Java: un guide complet pour les développeursMay 13, 2025 am 12:04 AM

Les fonctions Java supérieures incluent: 1) la programmation orientée objet, la prise en charge du polymorphisme, l'amélioration de la flexibilité du code et la maintenabilité; 2) Mécanisme de gestion des exceptions, améliorant la robustesse du code à travers des blocs de capture-effort finalement; 3) Collection des ordures, simplification de la gestion de la mémoire; 4) génériques, améliorant la sécurité de type; 5) Expressions Ambda et programmation fonctionnelle pour rendre le code plus concis et expressif; 6) Bibliothèques standard riches, fournissant des structures de données optimisées et des algorithmes.

See all articles

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 semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel