Breaking

lundi 16 février 2026

Cours Complet POO en Java : Polymorphisme, Interfaces, Classes Abstraites et Concepts Fondamentaux


POO en Java · Guide + QCM

🔷 Programmation Orientée Objet (Java)

7 concepts fondamentaux · exemples & détails

🔷 1️⃣

Classe & Objet

Définition
Classe : modèle (template) qui définit des attributs et méthodes.
Objet : instance d’une classe créée avec new.
🔑 Mots‑clés
classnewattributméthodeinstance
💻 Code
class Personne {
    String nom;
    int age;

    void afficher() {
        System.out.println("Nom: " + nom + ", Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Personne p1 = new Personne();
        p1.nom = "Ali";
        p1.age = 22;
        p1.afficher();
    }
}
🔷 2️⃣

Constructeur

Définition
Méthode spéciale : même nom que la classe, pas de type retour, sert à initialiser les objets.
🔑 Mots‑clés
constructeurinitialisationthis
💻 Code
class Personne {
    String nom;
    int age;

    Personne(String nom, int age) {
        this.nom = nom;
        this.age = age;
    }

    void afficher() {
        System.out.println("Nom: " + nom + ", Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Personne p1 = new Personne("Sara", 25);
        p1.afficher();
    }
}
🔷 3️⃣

Encapsulation

Définition
Rendre les attributs private, utiliser des getters/setters pour protéger les données.
🔑 Mots‑clés
privatepublicgettersetterprotection
💻 Code
class Compte {
    private double solde;

    public void setSolde(double solde) {
        if (solde >= 0) this.solde = solde;
    }

    public double getSolde() {
        return solde;
    }
}

public class Main {
    public static void main(String[] args) {
        Compte c = new Compte();
        c.setSolde(1000);
        System.out.println("Solde: " + c.getSolde());
    }
}
🔷 4️⃣

Héritage

Définition
Une classe enfant hérite des attributs et méthodes de la classe parent. Réutilisation.
🔑 Mots‑clés
extendssuper-classesous-classeréutilisation
💻 Code
class Animal {
    void parler() {
        System.out.println("L'animal fait un bruit");
    }
}

class Chien extends Animal {
    void aboyer() {
        System.out.println("Le chien aboie");
    }
}

public class Main {
    public static void main(String[] args) {
        Chien c = new Chien();
        c.parler();
        c.aboyer();
    }
}
🔷 5️⃣

Polymorphisme

Définition
Une même méthode peut avoir plusieurs comportements selon l’objet. Redéfinition (override).
🔑 Mots‑clés
@Overrideredéfinitionsuper-classedynamique
💻 Code
class Animal {
    void parler() {
        System.out.println("L'animal fait un bruit");
    }
}

class Chat extends Animal {
    @Override
    void parler() {
        System.out.println("Le chat miaule");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a = new Chat();
        a.parler(); // polymorphisme
    }
}
🔷 6️⃣

Classe Abstraite

Définition
Classe non instanciable qui peut contenir des méthodes abstraites. Modèle incomplet.
🔑 Mots‑clés
abstractméthode abstraiteimplémentation
💻 Code
abstract class Forme {
    abstract double calculerAire();
}

class Rectangle extends Forme {
    double largeur, hauteur;
    Rectangle(double l, double h) { largeur=l; hauteur=h; }
    @Override double calculerAire() { return largeur*hauteur; }
}

public class Main {
    public static void main(String[] args) {
        Forme f = new Rectangle(4,5);
        System.out.println("Aire: " + f.calculerAire());
    }
}
🔷 7️⃣

Interface

Définition
Contrat : méthodes abstraites (par défaut). Une classe implements. Abstraction totale.
🔑 Mots‑clés
interfaceimplementscontratabstraction totale
💻 Code
interface Paiement {
    void payer(double montant);
}

class CarteBancaire implements Paiement {
    @Override
    public void payer(double montant) {
        System.out.println("Paiement par carte: " + montant);
    }
}

public class Main {
    public static void main(String[] args) {
        Paiement p = new CarteBancaire();
        p.payer(500);
    }
}

📌 Résumé Global de la POO

ConceptObjectifMot-clé principal
ClasseDéfinir un modèleclass
ObjetInstance de classenew
EncapsulationProtéger les donnéesprivate
HéritageRéutiliser du codeextends
PolymorphismePlusieurs comportements@Override
AbstraiteModèle incompletabstract
InterfaceContratimplements

🎯 Conclusion : les 4 piliers

Abstraction Encapsulation Héritage Polymorphisme

Ces piliers permettent :

✔ Organisation ✔ Réutilisation ✔ Sécurité ✔ Modularité ✔ Maintenance facile
📋 QCM – Testez vos connaissances (POO)
20 questions · Choisissez une réponse et cliquez sur Vérifier
1 Qu'est-ce qu'une classe en POO ?
2 Quel mot-clé utilise-t-on pour créer une instance de classe en Java ?
3 Quel est le rôle principal d'un constructeur ?
4 L'encapsulation consiste à :
5 Quel mot-clé permet l'héritage en Java ?
6 Le polymorphisme permet :
7 Quelle annotation indique une redéfinition de méthode ?
8 Une classe abstraite peut être instanciée ?
9 Que doit faire une classe qui implémente une interface ?
10 À quoi sert le mot-clé 'this' en Java ?
11 En Java, une classe peut-elle hériter de plusieurs classes ?
12 Quel est un avantage clé de l'encapsulation ?
13 Une méthode abstraite doit obligatoirement être dans :
14 Quelle est la principale différence entre une classe abstraite et une interface (Java 8+) ?
15 Que signifie @Override ?
16 Quel mot-clé rend un attribut accessible uniquement dans la classe elle-même ?
17 Le polymorphisme permet de :
18 Une classe fille peut-elle accéder directement aux membres privés (private) de son parent ?
19 Qu'est-ce qu'une interface fonctionnelle ?
20 Quel principe de la POO permet de regrouper données et méthodes au sein d'une même entité ?

Aucun commentaire:

Enregistrer un commentaire