Maison > Java > javaDidacticiel > Héritage

Héritage

Linda Hamilton
Libérer: 2025-01-19 18:08:10
original
192 Les gens l'ont consulté

Explication détaillée du mécanisme d'héritage Java : la pierre angulaire de la construction de programmes orientés objet

Le mécanisme d'héritage en Java permet à un objet d'hériter de toutes les propriétés et comportements de l'objet parent, ce qui est le concept de base de la programmation orientée objet (POO). Grâce à l'héritage, nous pouvons créer une nouvelle classe basée sur une classe existante, réutiliser les méthodes et les champs de la classe parent et ajouter de nouvelles méthodes et champs sur cette base.

Qu'est-ce que l'héritage ?

Le mécanisme d'héritage Java permet à une classe (sous-classe ou classe dérivée) d'hériter des propriétés et méthodes d'une autre classe (superclasse ou classe parent). Les sous-classes peuvent accéder aux membres (champs et méthodes) de la superclasse, appliquant des règles de réutilisation et promouvant la hiérarchie des classes. L'héritage incarne la relation « IS-A », également connue sous le nom de relation parent-enfant.

Pourquoi utiliser l'héritage Java ?

  • Réutilisation du code : L'héritage améliore considérablement la réutilisation du code et évite d'écrire le même code fonctionnel à plusieurs reprises.
  • Réécriture de méthode (implémentation du polymorphisme d'exécution) : (à ajouter)

Conditions liées à l'héritage

  • Classe : Une collection d'objets avec des propriétés communes qui est un modèle ou un plan pour créer des objets.
  • Sous-classe/Sous-classe : Une classe qui hérite d'autres classes, également appelée classe dérivée, classe étendue ou sous-classe.
  • Super classe/classe parent : Une classe dont les sous-classes héritent de caractéristiques, également appelée classe de base ou classe parent.
  • Réutilisabilité : Un mécanisme permettant de réutiliser les champs et méthodes de classe existants lors de la création de nouvelles classes.

Syntaxe d'héritage Java

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
Copier après la connexion
Copier après la connexion
Le mot-clé

extends signifie créer une nouvelle classe dérivée d'une classe existante. « étend » signifie fonctionnalité étendue. Dans la terminologie Java, la classe héritée est appelée classe parent ou superclasse, et la nouvelle classe est appelée sous-classe ou classe enfant.

Héritage

La figure ci-dessus montre que Programmer est une sous-classe et Employee est une superclasse. La relation entre les deux est Programmer IS-A Employee, ce qui signifie que le programmeur est une sorte d'employé.

Exemple : Programmer.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
Copier après la connexion
Copier après la connexion

Types hérités de Java

Selon la relation d'héritage des classes, l'héritage Java est principalement divisé en trois types : l'héritage unique, l'héritage multicouche et l'héritage hiérarchique.

Héritage

Remarque : Java ne prend pas en charge l'héritage multiple via les classes.

Lorsqu'une classe hérite de plusieurs classes, on parle d'héritage multiple. Par exemple : Héritage multiple en Java

Héritage

Exemple d'héritage unique

Lorsqu'une classe hérite d'une autre classe, on parle d'héritage unique. Dans l'exemple ci-dessous, la classe Dog hérite de la classe Animal, donc un héritage unique.

TestHéritage.java

<code class="language-java">class Animal {
    void eat() {
        System.out.println("正在吃...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("汪汪...");
    }
}

class TestHéritage {
    public static void main(String args[]) {
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}</code>
Copier après la connexion

Exemple d'héritage multi-niveaux

Lorsqu'il existe une chaîne d'héritage, on parle d'héritage multi-niveaux. Dans l'exemple ci-dessous, la classe BabyDog hérite de la classe Dog, qui à son tour hérite de la classe Dog, d'où un héritage multi-niveau. Animal

TestHéritage2.java

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
Copier après la connexion
Copier après la connexion

Exemple d'héritage hiérarchique

Lorsque deux classes ou plus héritent d'une seule classe, on parle d'héritage hiérarchique. Dans l'exemple ci-dessous, les classes Dog et Cat héritent de la classe Animal, d'où l'héritage hiérarchique.

TestHéritage3.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
Copier après la connexion
Copier après la connexion

Pourquoi Java ne prend-il pas en charge l'héritage multiple ? (A ajouter)

Pour réduire la complexité et simplifier le langage, Java ne prend pas en charge l'héritage multiple via les classes.

Réécriture de méthodes et surcharge de méthodes

  • Remplacement de méthode : Une sous-classe fournit une implémentation spécifique d'une méthode déclarée dans la classe parent.
  • Surcharge de méthode : Dans la même classe, le nom de la méthode est le même, mais le nombre ou le type de paramètres sont différents.

finalFonction des mots-clés

Le mot-clé

final est utilisé pour empêcher le remplacement de méthode et l'extension de classe :

  • final Champ : ne peut pas être réaffecté.
  • final Méthode : ne peut pas être remplacée.
  • final Classe : ne peut pas être héritée.

Lien de référence : https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal