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 :

héritage d'une classe abstraite


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    968
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 968
    Points : 141
    Points
    141
    Par défaut héritage d'une classe abstraite
    Bonjour,

    Est-il possible d'hériter d'une classe abstraite, en java ou peut on seulement l'implémenter avec la clause implements?

    Par ailleurs, la notion de surdéfinition concerne -t-elle uniquement une méthode d'une même classe qui est surdéfinie à l'intérieur de cette classe ou peut elle concerner la même méthode définie autrement dans d'autres classes .

    Merci beaucoup de votre aide.

    Cordialement.

    Nathalie

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    En java, une classe abstraite est une classe, elle doit donc être héritée pour pourvoir être utilisée.

    Qu'entends-tu par "surdéfinition"? surchage ou redéfinition?

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    On peut bien sûr hériter d'une classe abstraite, c'est d'ailleurs sa raison d'être, conceptuellement une classe abstraite a pour vocation d'être spécialisée.

    A noter les petites différences entre l'héritage d'une classe (abstraite ou pas) et l'implémentation d'interfaces :
    • Une classe peut hériter d'une et une seule classe avec le mot clé extends
    • Une classe peut implémenter une ou plusieurs interfaces avec le mot clé implements
    • Une interface peut hériter d'une ou plusieurs interfaces avec le mot clé extends


    La surdéfinition (plutôt appelée surcharge) peut se faire sur n'importe quelle méthode de la classe ou héritée.

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par harbonne Voir le message
    Bonjour,

    Est-il possible d'hériter d'une classe abstraite, en java ou peut on seulement l'implémenter avec la clause implements?
    Comme l'a dit Deaf, on peut en effet heriter d'une classe abstraite, pour cela on utilise la "extends"; le mot "implements" est pour l'implementation d'une interface.

  5. #5
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    par surdéfinition, j'imagine que tu veux dire surcharge.

    Soit une méthode d'une classe C.
    La surcharge de cette méthode est définie dans une classe qui hérite de la classe C.

  6. #6
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    pour mettre un peu d'ordre dans les terminologies:
    En anglais et en Java:
    - overloading (surcharge) c'est quand on crée une méthode de même nom qu'une méthode existante mais avec une signature différente (ex. surcharge de println dans PrintStream : println(char); println(int) etc...)

    - overriding ( terme à voir: moi je dis spécialisation mais on peut avoir un autre mot) c'est quand on redéfinit le comportement d'une méthode dans une sous-classe (donc méthode avec même signature).

  7. #7
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour shadoko,

    dans le doute, j'ai ouvert le livre "Introduction au Java" aux édition O'Reilly.

    -- d'une part, l'auteur utilise les termes de "surcharge" et de "redéfinition".
    -- d'autre part, la surchage d'une méthode peut se faire dans la classe de cette méthode ou dans une de ces classe fille.

  8. #8
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    Bonjour shadoko,

    dans le doute, j'ai ouvert le livre "Introduction au Java" aux édition O'Reilly.

    -- d'une part, l'auteur utilise les termes de "surcharge" et de "redéfinition".
    ben oui ... (on est bien d'accord que ce n'est pas la même chose! hein!)
    -- d'autre part, la surchage d'une méthode peut se faire dans la classe de cette méthode ou dans une de ces classe fille.
    exact - dans la classe courante ou dans une de ses classes filles- (mais ce n'est toujours pas la même chose). Il y a quelques cas où c'est interdit mais ne chipotons pas.

    dans le doute (en Anglais) ce qui fait autorité c'est les spécifications de Java (JLS).... mais en français on n'a pas un accord tout à fait parfait sur les traductions (je me sers en partie de documents canadiens).

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    968
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 968
    Points : 141
    Points
    141
    Par défaut heritage, implementation et surdefinition
    Bonjour et merci à tous de ces informations dont je prends bien note.

    Cordialement.

    Nathalie

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/10/2012, 19h25
  2. Réponses: 4
    Dernier message: 27/09/2012, 17h37
  3. Problème d'héritage avec une classe abstraite
    Par Ph.denis dans le forum C++
    Réponses: 7
    Dernier message: 22/03/2008, 10h37
  4. Erreur du designer avec héritage d'une classe abstraite
    Par Xzander dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2007, 00h36
  5. Conception: héritage d'une classe abstraite
    Par Kikito dans le forum Langage
    Réponses: 19
    Dernier message: 05/10/2006, 17h36

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