begin process at 2010 02 10 04:52:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

API

 > 

Interfaces


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Interfaces

mercredi 19 novembre 2003 à 09:35:59 | Interfaces

titeufhack

Bonjour,

Je sais cela va paraitre une question tres con... mais en fait c assez fondamental...

Est ce qq'un pour m'expliquer clairement l'avantage des interfaces??? Outre la diffenre d'une classe qui "est une" lorsqu'elle herite d'une autre classe et "a une" lorsqu'elle implemente une interface... ;)

Merci d'avance...

Honor 'n' Glory



Z@rG1D
mercredi 19 novembre 2003 à 10:47:44 | Re : Interfaces

neodante

Administrateur CodeS-SourceS

Neodante

Il me semble que j'avais déjà posté une réponse à cette question dans un de mes anciens postes.

Simplement, les interfaces vont te servir à créer des héritages multiples 'propres'. En C++ l'héritage multiple est très pratique mais cela peut se révéler un véritable cauchemard lorsque ton architecture devient complexe.
De plus comme tu l'auras remarquer tu ne peux faire plusieurs extends donc tu vas de voir faire un petit implements qui lui peu être renseigné plusieurs fois ...
C'est pour cela (et Micro$oft adopte aussi ce concept), les interfaces (MC implements) ont été créées. En fait une interface comme tu le verras si tu vas sur le site sun, n'est rien d'autres qu'une 'promesse d'implémentation'...
Je sais que c'est un peu flou ce que je te dit mais c'est réellement un concept important pour pouvoir développer des programme JAVA complexe et puissant, alors je préfère que tu te reportes à des articles complets avec des exemples pour vraiment saisir toute la cohérence d'une interface (et crois moi la première chose que tu vois est simple mais les applications sont nombreuses et pas toujours évidente à voir du premier coup ...)
@+
mercredi 19 novembre 2003 à 11:00:45 | Re : Interfaces

titeufhack

Ok merci...

mais le truc c que j'ai du mal a saisir a quoi ca sert de promettre au compilateur que je v implementer telle et telle methode???

surtout qu'avec une interface, contrairement a la limite avec une classe abstraite, tu ne peut definir que la signature de ta methode.. pas ce qu'elle est cence faire... j'ai du mal a saisir le concept... :(


Honor 'n' Glory



Z@rG1D
mercredi 19 novembre 2003 à 13:27:40 | Re : Interfaces

neodante

Administrateur CodeS-SourceS

Neodante

> surtout qu'avec une interface, contrairement a la limite avec
> une classe abstraite, tu ne peut definir que la signature de
> ta methode

C'est ce que je te dit, tu fais une promesse que ta classe contiendra ces méthodes ...

Regarde sur java.fr ou sur des sites qui consacre des articles pour le développement JAVA. Le mieux si tu veux apprendre Java est tout de même d'acheter un livre, et je te recommandrais fortement cet ouvrage : 'Au coeur de Java' en 2 volumes. J'ai quelques livres de Java et vraiment ces 2 là sont sortes clairement du lot ! Va sur www.neogamedev.com (ou clic sur mon profil -> c'est mon site (que j'ai aps le temps de mettre à jour...) dans la section bouquin et tu auras un lien direct vers Amazon qui est le moins cher sur ces livres (existe un coffret qui regroupe les deux). Franchement tu ne regretteras pas ton achat je te le garantit !
@+
mercredi 19 novembre 2003 à 20:23:42 | Re : Interfaces

GodConan


GodConan

l interrer evident et imediat c que cela te permet de developer des class qui depende entierermen d Interface pour leur accessibliliter sans pour otan avoir a developer les class correspondante...

c est exactement le principe des Listener du java bien que l on dispose de class Adapter toute la gestion awt de passe au nivo des interfaces

c est el meme resonement pour les model de donne et les renderer ...

et bien sur comme consepte ;o) un peu moin evident il y a l heritage multiple ;o) (mais bon ce n est pas celui du C++)

et c vrai ke les interface son tres utilisé en RMI héhé
pour les Stub par exemple...

GL
++
vendredi 24 juin 2005 à 19:53:46 | Re : Interfaces

squale

Membre Club
Explication par l'exemple:

Tu defni l'interface suivante (tres simple mais c pour l'exemple)
interface Saveable
{
   public void save();
}

voici deux classes differentes implementant l'interface
class A implements Saveable
{
     //implementation de l'interface
    public void save()
   {
      //instructions de sauvegarde en BDD par exemple
    }
}

class B implements Saveable
{
//implementation de l'interface
    public void save()
   {
      //instructions de sauvegarde en fichier autre exemple
    }

}

//utilisation en cas pratique

public static void main(String[] args)
{
   A a = new A();
   B b = new B();
   Vector v = new Vector();
   v.add(a);
   v.add(b);
   //maintenant on veut sauver tous les objet de v
   for(Iterator ite = v.iterator(); ite.hasNext();)
   {
        //on sait que tous les objet de v implemant l'interface
         Saveable objetSaveable = (Saveable) ite.next();
         //on appelle la fonction save() de chaque objet
         //en passant par l'interface
         objetSaveable.save();
   }

}

Et voilà. D'ailleurs tu as beaucoup d'objet en Java qui fonctionne sur ce principe.
Exemple les List (c une interface)
Vector et ArrayList (entre autre) implémente List, tu peux ainsi utilsier les 2 type d'objet en fonction des cas et faire des fonctions génériques qui utlisent les méthodes de l'interface en ne faisant appelle qu'a un 'objet' List mais qui prendra la reference d'un vrai objet lors de son utlisation.
Si c pas clair dis le moi j'essaierai de faire mieux

A+

Sylvain




Cette discussion est classée dans : classe, img, br, lorsqu, interfaces


Répondre à ce message

Sujets en rapport avec ce message

Certification programmeur [ par titeufhack ] Bonjour, j'aimerais savoir si des développeurs ont déjà passé la certification programmeur J2SE de Sun.Dans ce cas, pourriez vous me donner quelques c les classe interfaces en java [ par hanane7575 ] bonjour ;j'au un petit explication aui concerne le pragrammation en javaj'ai un projet de fin formation sous suijet location de voiture et j'ai deje f une classe java qui fait l insertion dans une table oracle 10g [ par lerache ] bonjour tous;je suis entrin de realiser une application avec j2ee pour mon PFE, j ai  deja ecrit la classe qui fait la connection avec la base de donn manipulation image pcx ? [ par skhedar ] bonjour,j'aurais besoin de manipuler des images au format pcx (logos), j'essai d'imprimer des billets sur une imprimante dédiée à cela.l'imprimante n' classe java [ par sancha ] dsl je ss debutante en java et je ve faire la liaison entre 2 classes ,la 1er faire appeler la 2 eme :la 1er contient une interface dont laquelle on s classe dedie de listener [ par sancha ] comment je pe instancie mon classe das une classe dedie de listener? jtabbedpane [ par safiajava ] salut, dans mon projet j'ai plusieurs classe la classe principale(classMenu)avec deux panneux (pr afficher l'image avec son histograme)et afficheImage pb de thread [ par ghaza486 ] Bonjour, j'ai un probleme dans mon projet j'ai un classe qui dessiner un graphe oriente et un autre classe pour le pgm principale et dans cet classe j Java Desktop Application & JPanel [ par komus ] Bonjour,Je vous expose mon problème. Je veux développer une classe qui hérite de JPanel pour ensuite l'utiliser pour les fenetre que je crée. Je trava Passer des parametre à un rapport [ par soumia12 ] salut, Comment passer des paramétres à un rapport crée par Ireport à partir une classe java sachant que cette classe est une formulaire graphique c.a.


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales