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 :

extends & implements


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut extends & implements
    Bohjour,
    je suis debutant en java.
    Je voudrais savoir quelle est la difference entre extends et implements.
    Merci d' avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    extends sert pour hériter d'une classe
    implements sert pour "hériter" d'une interface (c'est à dire d'une certaine manière d'une classe totalement abstraite qui est une sorte de contrat)

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par chtig
    extends sert pour hériter d'une classe
    Oui.

    Je dirais d'ailleurs qu'extends sert à hériter tout court (extends == étendre).

    Citation Envoyé par chtig
    implements sert pour "hériter" d'une interface (c'est à dire d'une certaine manière d'une classe totalement abstraite qui est une sorte de contrat)
    Non : il ne s'agit pas vraiment d'héritage : implements signifie qu'une classe implémente une interface, et doit donc proposer une implémentation de toutes ses méthodes.


    D'ailleurs pour l'héritage d'interface on utilises également extends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface MyCollection extends Collection {
     
        public void print();
     
    }
    a++

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Je cherchais à donner une explication simple ... Mais si tu veux rentrer dans les détails, on peut :
    Non : il ne s'agit pas vraiment d'héritage : implements signifie qu'une classe implémente une interface, et doit donc proposer une implémentation de toutes ses méthodes.
    C'est faux. La classe peut très bien être abstraite, et aller jusqu'à ne proposer aucune implémentation de méthodes.
    D'ailleurs pour l'héritage d'interface on utilises également extends
    Exact, mais je ne voulais pas embrouiller

    Maintenant, pour rentrer dans des débats philosophiques, on peut chercher la différence entre une classe abstraite qui n'a que des méthodes abstraites et une interface. Et ensuite chercher la différence entre hériter d'une telle classe ou implémenter une interface ...

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par chtig
    C'est faux. La classe peut très bien être abstraite, et aller jusqu'à ne proposer aucune implémentation de méthodes.
    Mais les classes filles non-abstraite seront bien obligées d'implementer ces méthodes. Bref au final il y a bien une obligation d'implémentation.

    Ce que je voulais dire c'est que le mot-clef implements ne donne pas une notion d'héritage.

    a++

  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
    Et n'oubliez pas également de préciser - et débattre - de la signification de ces termes dans le cadre des génériques.

    Bon... avant, on va attendre l'avis de otari

Discussions similaires

  1. extends ou implements Comparable ?
    Par guti11 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 26/06/2013, 18h02
  2. l'utilisation de "extends" et "implements"
    Par HAXOCIS dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 01/11/2010, 12h55
  3. [PHP 5.3] [OO - Debutant] Quelle est la différence entre extend et implement
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 07/03/2010, 14h09
  4. thread avec extends Thread ou implements Runnable, la difference ?
    Par italiasky dans le forum Général Java
    Réponses: 3
    Dernier message: 24/01/2008, 20h38
  5. [Language]Extends, Implements
    Par clairette dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2005, 15h56

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