1
Java
Licence Professionnelle 2009-2010
Cours 7 : Classes et méthodes
abstraites
2
Java
Classes et méthodes abstraites
-Le mécanisme des classes abstraites permet de
définir des comportements (méthodes) qui
devront être implémentés dans les classes filles,
mais sans implémenter ces comportements
(c’est-à-dire sans écrire de code pour cette
méthode)
-Ainsi, on a l'assurance que les classes filles
respecteront le contrat défini par la classe mère
abstraite
-Ce contrat est une interface de programmation
3
Java
Classes et méthodes abstraites
-Exemple
Soit la classe 'Humain', à partir de laquelle dérivent la
classe 'Homme' et la classe 'Femme‘
En toute logique, 'Homme' et 'Femme' sont
instanciables (les objets créés ont une existence en
soi), mais la classe 'Humain' sera déclarée abstraite
car un objet 'Humain' n'existe pas en tant que tel,
puisqu'il manque l'information sur le sexe
Ici, la classe 'Humain' servira à implémenter des
méthodes qui seront utilisées à la fois pour 'Homme'
et pour 'Femme'
4
Java
Classes et méthodes abstraites
Exemple
public abstract class
AnimalCompagnie{
private String nom;
public AnimalCompagnie(String n){
nom = n;
}
public abstract void parler();
}
public class Chien extends
AnimalCompagnie{
public Chien(String s) {
super(s);}
public void parler() {
System.out.println("ouah ouah");
}
}
public class Chat extends
AnimalCompagnie{
public Chat(String s) {
super(s);}
public void parler() {
System.out.println("miaou");
}
}
5
Java
Classes et méthodes abstraites
Exemple (suite)
public class TestAnimal{
public static void main (String args[]){
Chien f = new Chien("Fifi");
Chat g = new Chat("Chloe");
//AnimalCompagnie a = new
//AnimalCompagnie("bob");
f.parler();
g.parler();
AnimalCompagnie [] a = new
AnimalCompagnie [2];
a[0] = f;
a[1] = g;
for(int i=0; i<a.length; i++) {
a[i].parler();
}
}
}
Résultats
-ouah ouah
-miaou
-ouah ouah
-miaou
1 / 39 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !