Académique Documents
Professionnel Documents
Culture Documents
Une méthode d'une classe abstraite peut ne pas avoir de code (abstraite) si le niveau
d'abstraction de la classe ne permet pas de définir un code réutilisable par les classes à
dériver.
2. Définition d'une classe abstraite en JAVA
Si une classe comporte une méthode abstraite elle doit être déclarée abstraite. Une classe
abstraite peut ne pas comporter de méthodes abstraites. Toute classe concrète dérivée à partir
d'une classe abstraite doit donner un code aux méthodes abstraites héritées, si non elle doit
être déclarée abstraite (l'abstraction continue). On ne peut pas combiner les modificateurs
abstract et final.
3. Les interfaces
Une interface est une forme particulière de classe. Une interface définit, généralement, des
propriétés abstraites. Le concept d'interface est proposé par le langage JAVA pour résoudre le
problème de l'héritage multiple. Une interface peut hériter de plusieurs interfaces en même
temps en utilisant le mot clé extends (héritage multiple). Comparée à une classe, une interface
correspond à un type comportant uniquement des méthodes abstraites et des constantes
statiques (on a pas à préciser les modificateurs abstract, final et static). Une interface est
définie d'une manière similaire à une classe mais en utilisant le mot clé interface.
Les interfaces ne sont pas instanciables.
La syntaxe de déclaration d'une interface est la suivante : interface NomInterface { … }.
1
int MIN = 0;
int MAX=100;
void afficher();
}
4. Interfaces et héritage
Une interface peut hériter d'une ou de plusieurs autres interfaces. Il s'agit d'une
extension de propriétés sous forme de méthodes abstraites et de constantes
statiques.
Exemple :
interface InputStream // propriété d'accepter des caractères
{ public int read(); }
interface OutputStream // propriété de fournir des caractères
{ public void write(int n); }
interface DataStream extends InputStream, OutputStream
{ public double readDouble();
public void writeDouble(double x);
}.
Une classe peut implémenter plusieurs interfaces, c'est à dire avoir les même caractéristiques
(ou propriétés) définies au niveau de ces interfaces. Réciproquement, la même interface peut
être implémentée par plusieurs classes. L'implémentation est une forme d'héritage multiple. Il
est possible de combiner, lors de la définition d'une classe, l'héritage et l'implémentation
d'interfaces.
Exemple
Il est possible de déclarer des références de type interface afin de désigner des objets qui
implémentent l'interface en question. Les objets désignés peuvent être de types différents.
L'opérateur instanceof peut être utilisé pour savoir si un objet implémente une interface
donnée.