Extends et Implements et Interface

Résolu/Fermé
patapouf - 13 juin 2003 à 20:02
 svsdf - 25 déc. 2012 à 18:08
j aurais trois questions :
1-quelle est la difference entre extends et implements
2-quelles sont les conditions pour que lorsque j utilise le extends l heritage entre deux classes s effectue
3-a quoi sert une interface lorsque l on a les methodes dans les classes

je precise que java c est pas ma tasse de the si vous pouviez me repondre avec des termes simples (voire bete!) je vous en serai reconnaissant

merci

6 réponses

tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
13 juin 2003 à 21:58
extends : c'est pour l'heritage de code
ex:
class A { }
class B extends A { }
class C { }
class D extends A,C { } // erreur, heritage de code est simple un - un

interface I { }
interface J { }
interface K extends I, J { } //juste parce q cela concerne des interfaces

en fait les interfaces c'est juste pour montrer a l'exterieur le comportement de plusieurs classes et pour garantir a peu pres que le comportemnent de toutes les classes qui implementent cette sorte de classe appelee interface garantit au minimum ces comportements.
Maintenant dans une interface, il n'ya pas de code, ni de varaiales sauf des constantes, donc ds une interface, on ne trouve que la declaration des methodes.
Le mot cle implements est utilise pour dire que la classe qui etend cette interface va definir un certain naombre des comportements de cette interface (si tout est defini, c'est regle, c'est une classe complete qui p etre instanciee, sinon c'est une classe abstraite non instanciable directement).

Maintenant avec l'ex ci-dessus avec A et B,
class B extends B {} signifie que B est une sorte de A avec en plus soit la modification du comportement de A ou bien un plus ds son coportement.

j'espere t'avoir aide, il fait tres chaud ds la piece ou je suis et j ne pe m'y eterniser.

tafiscobar
44
bonjour

j ai a peu pres compris mais j ai un autre souci:
j ai deux class B et D et deux interfaces A et C
ce que je veux faire c est :
- D extends B implements A
- D implements C extends A

et je voudrais savoir si c est possible deux memes methodes dans les deux interfaces du genre
dans A il y aurait public A compter(int n);
dans C il y aurait public C compter(int n);

j espere avoir ete clair
merci d essayer de me dechifffrer
patapouf
0
en fait j aurai aime savoir si en faisant :
interface1 extends interface2
les methodes de l interface2 s applique automatiquement a l interface1?

et si oui dans les class ou sont definies les methodes on met quel type interface1 ou interface2?
0
Salut,

En fait une interface ne fait que définir des en-têtes de méthodes sans corps (sans code).
Une classe abstraite est comme une interface sauf qu'à la différence on peut (ou non) définir le corps de ses méthodes.

on ne peut étendre une interface que depuis un autre interface, dans tous les autres cas il faut l'implémenter.

Un classe abstraite peut étendre ou/et implémenter une interface.

Une classe (normale) peut implémenter une interface ou une classe abstraite et peut étendre une classe Abstraite.

----
Une interface (en java) ne peut contenir que
1. des en-têtes de méthodes d'instance qui implicitement sont public et abstract, et ne peuvent avoir d'autres modificateurs; (on peut en mettre mais ça ne sert à rien, ils seront omis)
2. des déclarations de constantes qui, par défaut, sont public, final et static et ne peuvent avoir d'autres modificateurs; (idem que les méthode on peut mais ça sert à rien)
3. des interfaces et des classes imbriquées

Une interface ne peut donc être instanciée (new) puisqu'elle ne comporte aucune implémentation.

....
16
Bjr
Je début en java après une longue période en C. Je te dis ça juste pour que tu comprennes que je quitte l'impératif pour de l'objet c'est assez cho comme début.

J'ai vu que tes réponses étaient très concises. Et je voudrai à mon tour te poser une question au sujet des classes abstraites.
Une classe fille abstraite peut elle héritée d'une classe mère abstraite, et donc ne pas implémenter les méthodes abstraites de la classe mère ?

Tu peux me répondre sur mon mail stp: patrickbak2001@yahoo.fr

Merci bien
0
rocco > Aristote
3 mai 2009 à 12:53
grrr : Tu peux me répondre sur mon mail stp: patrickbak2001@yahoo.fr

Merci et ceux que ça interesse aussi on fait koi on te demande de nous forwarder le mail ... pffff boulet.

(Sinon ca va ta boite est pas trop spammer depuis que tu as poster ton email ?)

P.S.: réponds pas je reviendrais pas voir la réponse. Que ça t'apprenne un truc... le partage des connaissances au cas tu aurais pas compris.
0
quitter l'impératif pour le passé composé, c'est possible pour l'objet c'est pas possible par contre :
quitter l'itérratif pour l'objet pourquoi pas
0
Bonjour
S'il vous plait j'aimerais savoir les differences qui existe entre une interface et une classe abstraite
3
pad-de-pseudo
28 mars 2008 à 12:18
Bjr;
svp je savoir si ma methode ajoutVector est juste sachant que je veux mettre les objets des trois classes " Livre , Cd et Periodique" dans un tableau " Vector vect" ?


public class BibVector {

private Vector vect;

public BibVector(Vector vect)
{
super();
vect = new Vector(3);
}
public void ajoutVector( Livre livre , Cd cd , Periodique perio)
{
this.vect.add ( livre);
this.vect.add(cd) ;
this.vect.add( perio);


}
}
merci d'avance
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
14 juin 2003 à 17:08
D implements C extends A : c'est faux ca, D c'est une classe et A une interface, donc D dot implemente aussi A, la syntaxe est :
D implements C,A

Chaque classe est une "portee" et donc tu p etre mettre tout ce q tu veux qui soit conforme a la syntaxe de java, donc 2 classes differentes peuvent avoir 2 methodes de meme signature et de meme nom.
RM: effectivement si D implemente A et C et que A et C possedent toutes les 2 la methode compter(int n), D n'aura qu'une seule methode de signature compter(int n).

I1 extends I2 : oui, I1 heritera de toute l'interface de I2.
j'epere avoir ete clair.
tafiscobar
1
en ecrivant D implements C extends A je voulais dire que D implements C et C extends A
quelle serait alors la bonne syntaxe steup

et un gros merci pour ce qu tu as deja fait
patapouf
0
oublie ma derniere question je me rends de ma sottise mais je vous avez prevenu

encore merci
patapouf
0
slt
svp je veux savoir est ce qu je peux heriter de JFrame et JPanel en meme temps.
merci bp.
1
java ne permet pas les heritages multiples
0