Classe abstraite Java

Classe abstraite Java: C’est une classe qui ne peux pas instancier et qui contient au moins une méthode abstraite, qui est une méthode sans corps. C’est-à-dire une méthode non-définit que vous devez obligatoirement implémenter dans les sous-classe non abstraite. Lorsqu’une classe contient une méthode abstraite; Elle doit être obligatoirement abstraite.

Création d’une classe abstraite Java

Vous créez une classe abstraite avec le mot clé abstract suivi du nom de la classe. Voici un exemple de la création d’une classe abstraite:

public abstract class Vehicule { 
    abstract public void demarrer(); 
}

La classe véhicule est abstraite car la méthode démarrer de cette classe est abstraite. Une classe qui a une méthode abstraite doit être obligatoirement abstraite. Une classe abstraite peut avoir des méthodes non abstraite .

Comment l’utiliser?

Pour utiliser une classe abstraite il suffit de faire étend cette classe par une autre classe dans laquelle on doit définit toutes les méthodes non-définit de la classe abstraite. Voici un exemple :

public class Voiture extends Vehicule{ 
    @Override 
    public void demarer() { 
         
    } 
}

Nous avons faire de la classe Voiture une sous-classe de la classe Véhicule car il hérite la classe Véhicule. Une classe qui hérite une classe abstraite ne fait pas de lui une classe abstraite. Voici un exemple complet qui va vous permet de mieux comprendre le concepts de classe abstraite en java. On va créer une classe nommer FormeGeometrique qui  va être la classe mère des autres classe. C’est-à-dire les autres classes vont hériter la classe FormeGeometrique .

abstract public class FormeGeometrique { 
    double posX, posY; 
    void deplacer(double x, double y) { 
        posX = x; 
        posY = y; 
    } 
    void afficherPosition() { 
        System.out.println("position : (" 
                + posX + "," + posY + ")"); 
    } 
    abstract double surface(); 
    abstract double perimetre(); 
}

Voici la classe Rectangle qui hérite le classe FormeGeometrique et définit obligatoirement les méthode abstraite de la classe FormeGeometrique.

public class Rectangle extends FormeGeometrique { 
    double largeur, hauteur; 
    public Rectangle() { 
        posX = 0; 
        posY = 0; 
        largeur = 0; 
        hauteur = 0; 
    } 
    public Rectangle(double x, double y, double la, double lo) { 
        posX = x; 
        posY = y; 
        largeur = la; 
        hauteur = lo; 
    } 
    double surface() { 
        return largeur * hauteur; 
    } 
    double perimetre() { 
        return 2 * (largeur + hauteur); 
    } 
}

Voici la classe Cercle qui étend la classe FormeGeometrique et définit obligatoirement les méthode abstraite de la classe FormeGeometrique.

public class Cercle extends FormeGeometrique { 
    double rayon; 
    Cercle(double x, double y, double r) { 
        posX = x; 
        posY = y; 
        rayon = r; 
    } 
    double surface() { 
        return Math.PI * Math.pow(rayon, 2.); 
    } 
    double perimetre() { 
        return 2 * rayon * Math.PI; 
    } 
}

Et en fin notre classe App avec notre méthode main qui va nous permet de lancer notre programme.

public class App { 
    public static void main (String args[]) { 
        Rectangle rect; 
        Cercle cerc; 
        rect = new Rectangle(21,4,23,15); 
        cerc = new Cercle(56,56,98); 
        System.out.print("cercle "); 
        cerc.afficherPosition(); 
        System.out.print("rectangle "); 
        rect.afficherPosition(); 
        cerc.deplacer(65,90); 
        System.out.print("cercle maintenant "); 
        cerc.afficherPosition(); 
    } 
}

Une classe est abstraite si elle contient au moins une méthode abstraite ; elle ne peut pas être instanciée, mais ses sous-classes non abstraites le peuvent.

Publié dans : Java

Laisser un commentaire