Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1659 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Interface VS héritage....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interface VS héritage....

n°1313876
tanshiro
Posté le 26-02-2006 à 20:09:19  profilanswer
 

Salut tout le monde. Bon je suis en train de bosser du Java ( donc oui, je uis encore un newb' ) et je me pose quelques questions à propose de l'héritage et des interfaces...
Si j'ai bien tout compris, l'héritage permet d'étendre une classe pour lui rajouter des trucs dedans. La classe fille prend tout de la classe mere ( sauf les constructeurs, dans ce cas là on fait un appel a super() ).
L'interface ( bon là j'ai un doute hein ), permet d'imprémenter une classe a partir d'une nouvelle, sauf que la premiere c'est pas une classe mais une interface.
 
Donc dans les 2 cas, l'interface ET l'héritage permettent d'étendre une classe déjà existante... donc la question logique qui en découle est: Pourquoi on à deux solutions pour faire en gros le meme boulot ? et si c'est pas le meme boulot, c'est quoi la difference entre les deux alors ? :??:  :??:  :??:  
 
 
 
Ensuite une petite question facultative pour les plus courrageux: la surcharge, c'est quand on redéfinit une methode dans une classe hérité, alors qu'elle existait déjà dans la classe mere. On dit qu'il y a surcharge ( de la 1ere méthode ), j'ai bon ?  
 
 
Bon je sais que c'est des questions de débutant et qu'il y a des topics débutant, mais c'est super chaud de tout comprendre, des fois on a besoin d'un peu d'explications, surtout moi qui suis loin d'etre un einstein... :sweat:  
 
en tout cas merci a vous  :jap:

mood
Publicité
Posté le 26-02-2006 à 20:09:19  profilanswer
 

n°1313879
masklinn
í dag viðrar vel til loftárása
Posté le 26-02-2006 à 20:21:29  profilanswer
 

Une interface n'est pas une extension d'une classe, c'est un contrat.
 
Quand une classe A implémente une interface B, elle s'engage à respecter tout ce qui est définit dans B (en Java, toutes les méthodes définies par B), mais l'interface (ici B) n'implémente rien.
 
Il y a déjà eu un thread là dessus il y a pas longtemps et j'avais posté une explication apparement pas trop mauvaise
 
Voila

tanshiro a écrit :

Ensuite une petite question facultative pour les plus courrageux: la surcharge, c'est quand on redéfinit une methode dans une classe hérité, alors qu'elle existait déjà dans la classe mere. On dit qu'il y a surcharge ( de la 1ere méthode ), j'ai bon ?


On dit que la méthode a été surchargée, ou qu'on a surchargé la méthode, dire "il y a surcharge" n'a pas vraiment de sens.
 
Sinon, oui.
 
Et accessoirement une classe fille hérite des constructeurs de la classe mère si on ne surcharge pas le/les constructeurs.
 
Simplement, habituellement il est impératif de surcharger le constructeur pour initialiser les nouvelles fonctionalités de la classe, et dans ce cas on a besoin d'appeler le constructeur de la classe mère (via super)


Message édité par masklinn le 26-02-2006 à 20:27:09

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1313880
c0wb0y
:d
Posté le 26-02-2006 à 20:22:58  profilanswer
 

Avec l'héritage, tu a déjà une classe fonctionelle (sauf si t'hérites du classe abstraite, mais t'as quand même un certain nombre de méthode déjà définie).
 
Quand t'implémentes une interface, tu n'as rien de fonctionnel. Tu implémentes un "patron de classe" qui t'indique ce que t'as à développer  dans ta classe. Une interface permet de définir le comportement de la classe.

n°1313884
tanshiro
Posté le 26-02-2006 à 20:29:50  profilanswer
 

Merci beaucoup à vous .
Si j'ai uen question qui me turlupine, je la posterai ici aussi... mais vraiment merci

n°1313910
sircam
I Like Trains
Posté le 26-02-2006 à 21:49:57  profilanswer
 

Surcharge : un terme bien ambigu, à éviter à mon sens... C'est même un peu un contre-sens.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1359402
pactole@
Posté le 04-05-2006 à 12:00:58  profilanswer
 

petite question, si une classe herite d'une autre et qu'une methode est surchargée, comment faire pour accéder à la méthode surchargée depuis l'exterieur de l'objet ?
je me demandais si un cast vers l'objet parent et un appel de la méthode appellait la méthode du parent ou toujours la méthode surchargée.

n°1359414
pactole@
Posté le 04-05-2006 à 12:09:23  profilanswer
 

ok après une petite recherche apparement on peut pas.
 
A o = new A();
(B)o.m() appelle la methode m() de la classe et pas la classe B.
 
par contre
(B)o.x appelle l'attribut de la classe B et pas celui de A !

n°1359787
Bidem
Posté le 04-05-2006 à 16:34:46  profilanswer
 

Citation :

A o = new A();
(B)o.m() appelle la methode m() de la classe et pas la classe B.


 
Non, o.m() appelle la méthode m() de l'objet o et comme l'objet o est une instance de la classe A, cette méthode est celle définie dans la classe A.
 

Citation :

par contre
(B)o.x appelle l'attribut de la classe B et pas celui de A !


De la même façon, on accède à l'attribut x de l'objet o.
 
Ce qu'il faut bien comprendre en langage objet c'est que les données et les traitements sont encapsulés dans l'objet, une fois l'objet instancié il a un ensemble d'attributs et de méthodes fixe

n°1359874
pactole@
Posté le 04-05-2006 à 17:38:41  profilanswer
 

si je dis on accede à l'attribut de la classe c'est pour que ce soit clair. Pas la peine d'enculer les mouches ...
 
Lors de la surcharge d'attributs suivant que tu cast ou non, tu peux acceder à deux attributs de nom identiques celui du parent et du fils, mais qui auront des valeurs différentes.
Avec les méthodes surchargées tu peux pas choisir depuis l'exterieur de l'objet à quelle méthodes tu accedes à l'aide d'un cast contrairement aux attributs.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Interface VS héritage....

 

Sujets relatifs
[Résolu] Problème d'héritage d'héritage + redéfinition de méthodeinterface mail
Raffraichir une interface un peu vieillote en VB[C++/Open GL] Notion d'interface 3D
interface graphique ?Besoin d'aide pour création d'interface graphique
[RÉSOLU] Comment utiliser l'interface graphique propre à XP ?[VB] - Interface graphique de CD-ROM
Interface web de partage de fichiersASP.Net et interface graphique server-side
Plus de sujets relatifs à : Interface VS héritage....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR