Bonjour ,
est ce que quelqu'un peut m'expliquer a quoi sert de mettre une classe abstraite qui a des methodes non définis (manquantes) ,c 'est quoi son role??
merci
Bonjour ,
est ce que quelqu'un peut m'expliquer a quoi sert de mettre une classe abstraite qui a des methodes non définis (manquantes) ,c 'est quoi son role??
merci
Voila quelques liens, pour avoir les idees plus claires:
http://www.ie2.u-psud.fr/ie2/documen...p4.htm#partie2
http://www.pps.jussieu.fr/~dicosmo/C...ey/node15.html
Bonjour.
Cela sert à fournir aux autres classes une implémentation partielle surlaquelle ils peuvent se baser.
Si tu consultes la FAQ JAva, tu trouveras cette Q/R qui traite de ce sujet:
http://java.developpez.com/faq/java/...asse_abstraite
Essaies aussi de consulter l'un des cours présents dans notre page cours java.
Bonne chance.
Salut,
Les méthodes abstraites seront impérativement implémentées par les classes filles (à moins qu'elles ne soient également abstraites).
Les classes abstraites proposent donc un comportement "partiel", qui doit être compléter par les classes filles. C'est très pratique pour fournir un comportement qui peut être commun à plusieurs classes tout en étant légèrement différents...
Tu peux prendre en exemple la classe abstraite InputStream qui définit une méthode abstraite : read().
Ainsi les classes filles n'auront qu'à implémenter cette méthode et pourront hériter directement de toutes les autres méthodes...
Là ou c'est encore plus intéressant c'est que la méthode read() peut être utilisée par la classe InputStream, et c'est le cas notamment pour les méthode read(char[]) et read(char[],int,int)...
Mais comme on ne peut pas instancier directement le type InputStream, ce sera bien la méthode read() des classes filles qui sera appelée
a++
[edit] grillé
Salut,
Une classe abstraire va te permettre de définir un comportement commun (les méthodes définies dans la classe abstraite) mais aussi un comportement spécifique en héritant de cette classe et en implémentant les méthodes non définies dans la classe mère.
Ex :
EDIT: trop tard :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 abstract class Form { public void dessiner() { /* code pour dessiner */ }; public Double perimetre(); public Double aire(); } class Rectancle extends Forms { public Double perimetre() { return l*2 + L*2; } ... }
Juste un petit correctif sinon ça compile pas :
Et un petit ajout au passage pour le patron de méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 abstract class Form { public void dessiner() { /* code pour dessiner */ } public abstract Double perimetre(); public abstract Double aire(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 abstract class Form { public void dessiner() { dessinerHeader(); dessinerBody(); dessinerFooter(); } private void dessinerHeader() { System.out.println("Je sais dessiner Header"); } /* ça je sais pas faire */ protected abstract dessinerBody(); private void dessinerFooter() { System.out.println("Je sais dessiner Footer"); } }
effectivement j'avais oublié :-)Juste un petit correctif sinon ça compile pas :
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager