HELP :Difference Interface et classe abstraite

Signaler
Messages postés
16
Date d'inscription
jeudi 15 mars 2007
Statut
Membre
Dernière intervention
4 avril 2008
-
 Utilisateur anonyme -
slt tt le monde

j ai deux  ptits problemes :
1==>   j arrive pas a distinguer entre une interface et une classes abstraite il me semble qu ils ont ttes les deux les memes fonctionnalités , c qquoi la differnce alors ??

2==>d autre chose c que selon c que j ai lu dans qlq tutoriels c que les deux contiennent des methodes non implémentées , et qui seront implémentées par la suite dans des classes enfants mais je trouve le contraire dans cet exemple ou  une classe abstraite contient deja des methodes implémentées c est l exemple  : http://www.infres.enst.fr/~charon/coursJava/exercices/corriges/TableauTrieAbstrait.java

alors est ce qu ont peut trouver dans une interface et une classe abstraite des methodes déja impléméntées ..

Merci d avance  j attend votre réponse

2 réponses

Messages postés
1
Date d'inscription
mardi 6 février 2007
Statut
Membre
Dernière intervention
18 décembre 2007

Bonsoir à toi karamilano,

Je ne suis pas certain de pouvoir répondre à ta question mais je vais essayer de t'apporte plus d'éléments sur ces différents points.

Tout d'abord il faut savoir qu'une classe abstraite ne peut être instanciée. C'est à dire que tu ne peux faire un new LaClasseAbstraite(), pour créer une occurence de cette classe.Cependant il est tout a fait possible de pouvoir utiliser ces classes  sans devoir redéfinir les methodes qu'elles contiennent.

Les interfaces quant à elles, demandent obligatoirement de redefinir dans la classe qu'elles implémentent toutes leurs méthodes.C'est à dire que si ton interface contient 6 methodes, tu seras obligé de redéfinir ces 6 méthodes dans ta classe  même si tu veux te servir que de l'une d'entre elles.

Je te confirme que les interfaces et les classes abstraites ont des methodes propres à elles même. Elles sont juste redéfinies(surchargées) dans les classes qui les nécessitent.
Rien n'empêche également une classe abstraite d'implémenter une interface....ça se complique là:...-)

 

1
11
21
1211
...

Toutes les méthodes d'une interface sont abstraites alors qu'une classe abstraite peut avoir à la fois des méthodes non abstraites et des méthodes abstraites.

Une interface ne peut pas avoir de constructeur du tout alors qu'une classe abstraite peut avoir un constructeur mais il ne pourra pas être appelé directement (par exemple en utilisant new), il pourra être appelé par une classe qui en dérive depuis le constructeur (avec super() par exemple) mais cette possibilité dépend aussi de la visibilité du constructeur de la classe abstraite.

Une interface peut quand même contenir des attributs de classe mais je te déconseille de faire ça, c'est pas très propre.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java