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

Linda Hamilton
Linda Hamiltonoriginal
2025-01-06 10:31:46890parcourir

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