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 :
// 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) ; }
// 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 (...) ;
public abstract class Classe_A { ... }
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); ... }
public class Classe_B extends Classe_A { ... }
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 } }