"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Héritage et polymorphisme en Java: utiliser des superclasses et des sous-classes

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

Publié le 2025-02-06
Parcourir:961

Cet article explique comment l'héritage de Java a une relation «IS-A» entre les superclasses et les sous-classes, permettant aux sous-classes d'hériter et de personnaliser les fonctionnalités des superclasse. 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.


Dans Java, la relation entre les super classes (classe parent) et les sous-classes (classe enfant ou classe dérivée) dans l'héritage est une relation IS-A impliquant que la sous-classe est une version spécialisée de la superclasse héréditaire de la fonctionnalité (les restrictions peuvent être appliqué) d'une classe dont il est dérivé (CSU Global, n.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 fonctionnalités spécifiques ou / et en remplaçant une partie ou la totalité des fonctionnalités de la classe A. La capacité de la classe infantile à remplacer la fonctionnalité est une forme de polymorphisme.

«La définition du dictionnaire du polymorphisme fait référence à un principe de biologie dans lequel un organisme ou une espèce peut avoir de nombreuses formes ou étapes différentes. Ce principe peut également être appliqué à la programmation et aux langages orientés objet 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 pour traiter 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:

superclass

public class Animal {
    public void makeSound() {
        System.out.println("Makes a Sound");
    }
}

Sous-classe des animaux

public class Domesticated extends Animal {
    public void friendly() {
        System.out.println("This animal is friendly.");
    }
}

Sous-classe de domestiqué

public class Undomesticated extends Animal {
    public void notFriendly() {
        System.out.println("This animal is not friendly.");
    }
}

Sous-classe de domestiqué

public class Cat extends Domesticated {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

Sous-classe de
non domestiqué

public class Owl extends Undomesticated {
    @Override
    public void makeSound() {
        System.out.println("Hoots");
    }
}

classe principale pour sortir 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 () dans les classes de chien et de chat remplacent la méthode makeSound () dans la classe animale.

De plus, la classe de chiens est une sous-classe de la classe domestique qui est une sous-classe de la classe animale.

Enfant de «→»
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

Dans Java, une sous-classe ne peut avoir qu'une seule superclasse, par exemple, la classe de chien ne peut pas avoir une superclasse domestique et un animal superclasse, 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 ils ne sont pas autorisés à 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, d'incarner la relation «IS-A» et de faciliter 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 des caractéristiques partagées sur une superclasse commune.


références:

cus global (n.d.). Module 1: Travailler avec l'héritage [Conférence interactive]. Dans Colorado State University Global, CSC372: Programmation II, Département d'informatique. Toile. Extrait le 8 juin 2024 de https://csuglobal.instructure.com/Courses/94948/pages/module-1-overview?module_item_id=4868813

Les tutoriels Java ™ (n.d.). Apprendre la langue Java: interfaces et héritage. Oracle. Extrait le 8 juin 2024, Fromhttps: //docs.oracle.com/javase/tutorial/java/iandi/polymorphism.html


Publié à l'origine sur Alex.omegapy sur le milieu publié par niveau de codage le 1er novembre 2024.

Déclaration de sortie Cet article est reproduit à: https://dev.to/alex_ricciardi/inheritance-and-polymorphism-in-java-using-superclasses-and-sublasses-12jn?1 S'il y a une contrefaçon, veuillez contacter Study_golang @ 163 .com .com supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3