Table des matières

Classes abtraites

Concept

Une classe abstraite est une classe qui ne peut pas être instanciée directement, mais qui sert plutôt de modèle ou de base pour d'autres classes. Elle est conçue pour être héritée et étendue par d'autres classes qui peuvent en revanche être instanciées.

Dans une classe abstraite, on pourra trouver :

Exemple :

A.java
// une classe abstraite A
public abstract class A
{
    // une méthode non abstraite (=implémentée) dans A
    public void maMethode() {
        ...
    } 
 
    // une méthode abstraite de A
    public abstract void autreMethode (int nombre) ;
}
B.java
// une classe qui dérive la classe abstraite A
public class B extends A
{
 
    // implémentation de la méthode abstraite de A : obligatoire, 
    // sinon B reste abstraite
    public void autreMethode (int param) {
        ...
    }
}
 
// instanciation d'une classe qui dérive une classe abstraite : OK
B b = new B (...) ; 

Bénéfices

Règles de construction

Exemples d'utilisation

Définir une classe abstraite

public abstract class Classe_A {
    ...
}

Définir des méthodes abstraites

public  class Classe_A {
    // Bien observer ici qu'il s'agit d'une signature de méthode :
    //    + Pas de corps défini => pas de {}
    //    + Un point-virgule en fin de ligne
    public abstract void uneMethode (liste_de_paramètres);
    ...
}

Hériter de la classe abstraite (rien de nouveau ...)

public class Classe_B extends Classe_A {
    ...
}

Implémenter les méthodes abstraites

public class UneClasse extends Classe_A {
 
    @Override
    public void uneMethode (liste_de_paramètres) {
        // Implémentation de la méthode ... qui n'est plus abstraite
    }
}