Skip to content

🔸3🔸Méthode toString et introduction au polymorphisme

La redéfinition de méthodes est un excellent exemple pour introduire le polymorphisme.

Analyse de toString()

Dans la classe Personne

public class Personne {
    // ... autres attributs et méthodes ...

    @Override
    public String toString() {
        return prenom + " " + nom + " (" + age + " ans)";
    }
}

Cette première version crée une représentation textuelle de base d’une personne. L’annotation @Override indique que nous redéfinissons la méthode toString() héritée de la classe Object.

Dans la classe Etudiant

public class Etudiant extends Personne {
    // ... autres attributs et méthodes ...

    @Override
    public String toString() {
        return super.toString() + " - " + programme +
                " (Dossier: " + numeroDossier + ")";
    }
}

Cette version :

  • Utilise super.toString() pour réutiliser le format de base de la classe parente
  • Ajoute les informations spécifiques à un étudiant

Dans la classe Professeur

public class Professeur extends Personne {
    // ... autres attributs et méthodes ...

    @Override
    public String toString() {
        return super.toString() + " - " + departement +
                " (Spécialité: " + specialite + ")";
    }
}

Introduction au Polymorphisme

Le polymorphisme permet à une référence de type parent de manipuler un objet de type enfant. Voici un exemple concret :

public class ExemplePolymorphisme {
    public static void main(String[] args) {
        // Création d'un tableau de Personnes
        Personne[] personnes = new Personne[3];

        // Remplissage avec différents types
        personnes[0] = new Personne("Dupont", "Jean", 30);
        personnes[1] = new Etudiant("Tremblay", "Marie", 20, "12345", "Informatique");
        personnes[2] = new Professeur("Dubois", "Pierre", 45, "Informatique", "Java");

        // Affichage polymorphique
        for (Personne p : personnes) {
            System.out.println(p.toString());
            // ou simplement
            //System.out.println(p);
        }
    }
}

Résultat d’exécution

Jean Dupont (30 ans)
Marie Tremblay (20 ans) - Informatique (Dossier: 12345)
Pierre Dubois (45 ans) - Informatique (Spécialité: Java)

Points clés du polymorphisme

  • Une référence de type parent peut contenir un objet de type enfant
  • La méthode appelée est déterminée à l’exécution (liaison dynamique)
  • Le comportement dépend du type réel de l’objet, pas du type de la référence
  • Permet d’écrire du code plus générique et réutilisable

Exemple supplémentaire avec une méthode polymorphique

public class GestionnairePersonnes {
    public static void afficherDetails(Personne p) {
        System.out.println("Détails de la personne:");
        System.out.println(p);  // Appel polymorphique de toString()
    }

    public static void main(String[] args) {
        Personne pers = new Personne("Dupont", "Jean", 30);
        Etudiant etud = new Etudiant("Tremblay", "Marie", 20, "12345", "Informatique");

        afficherDetails(pers);  // Appelle toString de Personne
        afficherDetails(etud);  // Appelle toString d'Etudiant
    }
}

Cette capacité à traiter différents types d’objets de manière uniforme tout en conservant leur comportement spécifique est l’essence même du polymorphisme.


Note

Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.