IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Implementer une interface sans réecrire ces methodes


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Par défaut Implementer une interface sans réecrire ces methodes
    Bonjour,

    j'utilise l'api quartz et je suis debutant avec, je veux faire une classe qui implemente de l'interface Scheduler en lui rajoutant d'autre méthodes.

    le probleme est quand j'implemente l'interface, je dois redéfinir toute les methodes de l'interface Scheduler, y'a t'il un moyen pour implementer cette interface sans réecrire ces methodes ?

    Merci

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    Non.
    C'est le principe même de l'interface de ne posséder que des méthodes abstraite. Il ne s'agit même pas de redéfinir, vu qu'elles n'ont même pas été définies.

  3. #3
    Membre confirmé Avatar de NutellaPiou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Par défaut
    Je crois que c'est impossible d'implémenter une interface sans en réécrire les méthodes.

    C'est justement le but des interfaces =)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Par défaut
    Citation Envoyé par NutellaPiou Voir le message
    Je crois que c'est impossible d'implémenter une interface sans en réécrire les méthodes.

    C'est justement le but des interfaces =)
    J'ai vus qu'il ya le pattern Adaptateur mais j'ai pas compris comment l'utiliser

  5. #5
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Salut.

    Ben le principe de l'adaptateur est tout bête.
    Il s'agit de définir une classe abstraite qui implémente une interface donnée et fournissant un bloc vide pour chacune des méthodes à implémenter.

    Ainsi si tu veux implémenter cette interface, au lieu d'avoir à fournir une implémentation de toutes les méthode en l'implémentant directement, tu hérite de la classe abstraite ce qui te permet d'implémenter l'interface en redéfinissant uniquement les méthodes qui t'intéressent vu que la classe abstraite implémente déjà toutes les méthodes de l'interface (en fournissant un bloc vide certes, mais elle les implémente).

    Après ça marche si la classe que tu construit n'hérite pas déjà d'une autre classe et si, bien sur, les méthodes de l'interface que tu veux bypasser sont optionnelles (ce qui n'est pas forcément le cas), pour cela il faut consulter la doc de l'interface en question.

    Ce pattern est très utilisé en Swing pour la gestion des événements car cela s'y prête bien. Pour exemple, pour écouter les événements souris, tu as une interface à implémenter qui s'appelle MouseListener qui définit 5 méthodes : mouseClicked, mouseEntered ,mouseExited, mousePressed et mouseReleased. Si tu veux juste savoir quand l'utilisateur à cliqué avec la souris, il est évident que tu vas implémenter juste la première méthode mouseClicked, les autres méthodes ne t'intéressant pas. Pour cela tu vas utiliser une classe Adaptateur, nommé MouseAdapter, dont tu vas hériter et redéfinir la méthode mouseCliked.

    A voir si c'est applicable pour Quartz.

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Heu... il n'est pas tout à fait exact que l'on soit obligé d'implémenter toutes les méthodes d'une interface.

    D'abord, on peut très bien écrire une classe abstraite.

    Ensuite, on peut très bien n'en implémenter... aucune. Voir pour cela les miracles du java.lang.reflect.Proxy qui permet à tous les fénéants de ne rien faire !

    (ou presque).

Discussions similaires

  1. [REFLEXION] Connaitre toutes les classes qui implémentent une interface
    Par narmataru dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 25/10/2006, 11h00
  2. [ANTLR][JAVACC]implementer une interface
    Par anitshka dans le forum EDI et Outils pour Java
    Réponses: 13
    Dernier message: 22/08/2006, 15h12
  3. [Reflection] Obtenir toutes les classes implémentant une interface
    Par Pill_S dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 20/04/2005, 16h48
  4. [classe anonyme] implementant une interface
    Par stanilas dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2004, 00h18
  5. [Reflection] Classes implémentant une interface
    Par thibaut dans le forum API standards et tierces
    Réponses: 17
    Dernier message: 29/07/2004, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo