Voyons un peu l’utilisation du mot-clé Abstract en Java.
Définition de Wikipédia :
En programmation orientée objet (POO), une classe abstraite est une classe dont l’implémentation n’est pas complète et qui n’est pas instanciable. Elle sert de base à d’autres classes dérivées (héritées).
Wikipédia
1 – Les variables
C’est simple et rapide, une variable ne peut pas être marquée comme “abstract“.
2 – Les classes
- Si une classe est marquée comme abstract, elle ne peut pas être instanciée, c’est-à-dire que vous ne pouvez pas créer un objet de cette classe.
- Si une autre classe extends une classe abstract, elle doit obligatoirement remplacer toutes les méthodes de cette classe.
3 – Les méthodes
- Si un développeur ne connaît pas l’implémentation d’une méthode, celle-ci peut être marquée comme abstract.
- Une méthode abstract doit être une classe abstract.
- Une méthode abstract ne doit pas avoir de “corps” :
abstract public void display();
Petit bout de code pour expliquer l’abstraction :
abstract class A {
abstract void test(); // test() est abstract donc la classe A doit être abstract
}
abstract class B extends A {
void test() {
System.out.println("A"); // B overrides test()
}
abstract void test2();
}
abstract C extends B {
// La classe C ne connait pas l'implémentation de test2() et se marque donc comme abstract
void test3(){
System.out.println("C");
}
}
class D extends C {
// Ici, on aura une erreur de compilation car D doit override test2()
}