Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Redéfinition de méthodes Java : Personnaliser le comportement de la superclasse

Si une classe hérite d'une méthode de sa superclasse, elle peut la redéfinir (override) à condition qu'elle ne soit pas marquée final.

Avantage : définir un comportement spécifique au type de la sous-classe.

Exemple de base


class Animal {
    public void bouger() {
        System.out.println("Les animaux peuvent bouger");
    }
}

class Chien extends Animal {
    public void bouger() {
        System.out.println("Les chiens peuvent marcher et courir");
    }
}

public class TestChien {
    public static void main(String args[]) {
        Animal a = new Animal();  // référence Animal, objet Animal
        Animal b = new Chien();   // référence Animal, objet Chien
        
        a.bouger();  // méthode Animal
        b.bouger();  // méthode Chien (liaison dynamique)
    }
}

Résultat :


Les animaux peuvent bouger
Les chiens peuvent marcher et courir

Même si b est de type Animal, c'est la méthode de Chien qui s'exécute. À la compilation, on vérifie le type de référence. À l'exécution, la JVM détermine le type réel de l'objet et appelle sa méthode.

Exemple d'erreur de compilation


class Animal {
    public void bouger() {
        System.out.println("Les animaux peuvent bouger");
    }
}

class Chien extends Animal {
    public void bouger() {
        System.out.println("Les chiens peuvent marcher et courir");
    }
    public void aboyer() {
        System.out.println("Les chiens peuvent aboyer");
    }
}

public class TestChien {
    public static void main(String args[]) {
        Animal a = new Animal();
        Animal b = new Chien();
        a.bouger();
        b.bouger();
        b.aboyer();  // ERREUR : Animal n'a pas de méthode aboyer()
    }
}

Erreur : cannot find symbol: method aboyer()

Le type de référence (Animal) détermine les méthodes accessibles à la compilation.

Règles de redéfinition

Utilisation du mot-clé super

Pour invoquer la version de la superclasse d'une méthode redéfinie :


class Animal {
    public void bouger() {
        System.out.println("Les animaux peuvent bouger");
    }
}

class Chien extends Animal {
    public void bouger() {
        super.bouger();  // appelle la méthode de Animal
        System.out.println("Les chiens peuvent marcher et courir");
    }
}

public class TestChien {
    public static void main(String args[]) {
        Animal b = new Chien();
        b.bouger();
    }
}

Résultat :


Les animaux peuvent bouger
Les chiens peuvent marcher et courir

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  3. Méthode Java String length() : Comment obtenir la taille d'une chaîne (Exemple)
  4. Maîtriser Java String.indexOf() : Localiser des sous-chaînes et exemples pratiques
  5. Comprendre Java String.charAt() : Syntaxe, type de retour, exceptions et exemple pratique
  6. Maîtriser la méthode Java String compareTo() : Syntaxe, cas d'usage et exemples pratiques
  7. Méthode Java String.contains() : Comment vérifier la présence de sous-chaînes – Exemples pratiques
  8. Maîtriser Java String.endsWith() : Comment vérifier les suffixes de chaînes avec exemples
  9. Maîtriser le remplacement de chaînes Java : replace(), replaceAll() et replaceFirst() expliqués