Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

Java Inheritance

L'héritage Java est un concept fondamental de la programmation orientée objet qui permet à une nouvelle classe d'hériter des propriétés et des comportements (champs et méthodes) d'une classe existante. Cela favorise la réutilisation du code et établit une relation hiérarchique entre les classes.

Concepts clés

  • Superclasse (classe mère): La classe dont les propriétés et les méthodes sont héritées.
  • Sous-classe (classe enfantine): La classe qui hérite de la superclasse.

Utilisation

L'héritage est utilisé pour créer une nouvelle classe qui est un type d'une classe existante. Il permet d'étendre les fonctionnalités d'une classe sans la modifier, respectant ainsi le principe ouvert/fermé de la conception des logiciels.

Syntax


class Superclass {
    // fields and methods
}

class Subclass extends Superclass {
    // additional fields and methods
}

Exemples

Exemple 1 : Héritage de base


class Animal {
    void eat() {
        System.out.println("This animal eats food.");
    }
}

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

public class InheritanceExample {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();  // Inherited method
        dog.bark(); // Subclass method
    }
}

Dans cet exemple, Dog est une sous-classe qui hérite de la méthode eat de la superclasse Animal. La classe Dog possède également sa propre méthode, bark.

Exemple 2 : Surcharge des méthodes


class Vehicle {
    void run() {
        System.out.println("The vehicle is running.");
    }
}

class Car extends Vehicle {
    @Override
    void run() {
        System.out.println("The car is running safely.");
    }
}

public class MethodOverridingExample {
    public static void main(String[] args) {
        Car car = new Car();
        car.run(); // Overridden method
    }
}

Ici, la classe Car remplace la méthode run de la classe Vehicle pour fournir une implémentation spécifique.

Exemple 3 : L'utilisation super Keyword


class Person {
    String name = "John";

    void display() {
        System.out.println("Person's name: " + name);
    }
}

class Employee extends Person {
    String name = "Doe";

    void display() {
        System.out.println("Employee's name: " + name);
        super.display(); // Call superclass method
    }
}

public class SuperKeywordExample {
    public static void main(String[] args) {
        Employee emp = new Employee();
        emp.display();
    }
}

Dans cet exemple, le mot-clé super est utilisé pour appeler la méthode display de la superclasse Person à partir de la sous-classe Employee.

Conseils et bonnes pratiques

  • Utilisez l'héritage avec discernement: N'utilisez l'héritage que lorsqu'il existe une véritable relation "is-a". Par exemple, un Dog est un Animal.
  • Évitez les hiérarchies d'héritage profondes: Les hiérarchies d'héritage doivent être peu profondes afin de préserver la simplicité et de réduire la complexité.
  • Préférez la composition à l'héritage: Envisagez d'utiliser la composition (relation has-a) au lieu de l'héritage lorsque c'est nécessaire, car elle offre plus de flexibilité.
  • Utilisez @Override Annotation: Utilisez toujours l'annotation @Override lorsque vous remplacez des méthodes afin d'améliorer la lisibilité du code et d'éviter les erreurs.
  • Contrôle d'accès: Utilisez le modificateur d'accès protected pour les membres de la superclasse qui doivent être accessibles aux sous-classes mais pas au monde extérieur.

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement