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

avec Java Discussion :

Héritage multiple en Java


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 30
    Points
    30
    Par défaut Héritage multiple en Java
    Bonjour a tous,

    Je me pose une question certes un peu bête mais là je m'y perd et je fais appel a vos conseil d'expert pour m'éclaircir de facon simple les idées.
    Je sais qu'une classe ne peut hériter a la fois que d'une seul autre super classe abstrait (héritage simple) .Dans le cas ou je veuille faire hériter une classe lambda de plusieurs super classes abstraites, il faudra que cette classe lambda implémente une interface qui elle même peut hériter de plusieurs super classe abstraite, l'héritage multiple en java, c'est un fait un héritage multiple en quelque sorte détourné.

    Les exemple sont les bienvenues si vous en avez...

    Merci d'avance a vous tous...

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Une classe peut hériter (mot-clef extends) d'une seule et unique autre classe, qu'elle soit abstraite ou non.

    Une classe peut en revanche implémenter (mot-clef implements) une ou plusieurs interfaces différentes, qu'elles soient abstraites ou non.

    Une interface ne peut pas hériter d'une classe, mais peut hériter d'une ou plusieurs interfaces, qu'elles soient abstraites ou non.

    On cite souvent les interfaces comme une alternative à l'héritage multiple (car en fait, implicitement ou explicitement, on cherche à faire une comparaison avec le C++), bien que les interfaces n'implémente pas de code mais des corps de méthodes (ou/et des attributs).

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    Je complète: en gros, si je veux faire de l'héritage multiple je fait hérite (extend) mon interface de toutes les super classes abstraites que je souhaite et ensuite je fait implémenté mon interface par ma classe lambda pour quelle hérite de toutes le super classes abstraites... c'est de l'héritage via interface... J'ai bon ?!?

    donc selon toi une interface ne peut pas "hériter" d'un classe abstraite... mais une interface peut hériter de d'autres interfaces... donc l'héritage multiple est en fait là...non ?

    prenons un exemple si j'ai:

    - une classe être vivant
    - une classe humain
    - une classe mère
    - et enfin une classe fille

    qui pourrait logiquement hériter de qui, qui pourrait etre classe et qui pourrait être interface ?

  4. #4
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Il n'y a pas d'héritage multiple en Java. Ce sujet est abordé dans la littérature parce que beaucoup de développeur qui apprennent Java sont issue du C++. Dans un premier temps il ont du mal à penser en Java et continue à penser en C++. Mais ces deux langages sont en fait très différent, même si il y a aussi des ressemblances.

    Pour reprendre tes 4 classes en "pourrait" définir les choses ainsi :

    Humain hérite de Vivant.
    Mere hérite de Humain.
    Fille hérite de Humain.

    Si Humain est une interface et non une classe, on "pourrait" envisager :

    Mere hérite de Vivant et implémente IHumain.
    Fille hérite de Vivant et implémente IHumain.

    ....

    Tout dépend de ce que tu veux faire...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    la l'idée serait d'avoir chez les 4 classes par exemple:

    chez vivant une méthode chez mange, je respire, je me reproduit
    chez humain une méthode je_réfléchis
    chez femelle une méthode je_réfléchis_comme_le_genre_féminin (miso is back)
    chez fille une méthode je_réflechis_comme_le_genre_féminin_de_mon_age

    - en réalité une suite de succession, enfin je pense que tu vois ce que je veux dire...

    Dans ce cas la, pourrais je organiser ma réponse comme cela.

    la class Humain implémente IVivant
    la class Femelle hérite de la class Humain
    parcontre après la je ne sais plus comment faire hériter fille de femelle

    bon enfin je pesne que tu vois le trip, je m'y prend mal ds ma manière de concevoir les choses...

  6. #6
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Citation Envoyé par bim92i Voir le message
    parcontre après la je ne sais plus comment faire hériter fille de femelle
    la class Fille hérite de la class Femelle (si je suis ta logique)

    Citation Envoyé par bim92i Voir le message
    bon enfin je pesne que tu vois le trip, je m'y prend mal ds ma manière de concevoir les choses...
    Non pas. Mais c'est un vaste sujet et c'est pas si simple.

    Mais la conception objet est intimement lié a ce que tu veux obtenir en final.

    Il n'y a pas une seule bonne conception. Mais un ensemble de conceptions possible (avec leurs qualités et défauts) qui répondent à une problématique donnée (ce que tu veux faire en final). Tout cela se discute, se pèse, s'évalue. Puis on finit par en choisir une qui parait la plus approprié.

    C'est donc difficile de parler de conception sans parler de "qu'est-ce que je veux que ça fasse".

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bim92i Voir le message
    la l'idée serait d'avoir chez les 4 classes par exemple:

    chez vivant une méthode chez mange, je respire, je me reproduit
    chez humain une méthode je_réfléchis
    chez femelle une méthode je_réfléchis_comme_le_genre_féminin (miso is back)
    chez fille une méthode je_réflechis_comme_le_genre_féminin_de_mon_age

    - en réalité une suite de succession, enfin je pense que tu vois ce que je veux dire...

    Dans ce cas la, pourrais je organiser ma réponse comme cela.

    la class Humain implémente IVivant
    la class Femelle hérite de la class Humain
    parcontre après la je ne sais plus comment faire hériter fille de femelle

    bon enfin je pesne que tu vois le trip, je m'y prend mal ds ma manière de concevoir les choses...
    Salut,

    Moi je verrais plutôt ici :

    chez vivant une méthode chez mange, je respire, je me reproduit
    chez humain une méthode je_réfléchis
    chez femelle une méthode je_réfléchis
    chez fille une méthode je_réflechis

    Pour l'héritage ensuite :
    la class Humain implémente IVivant
    la class Femelle hérite de la class Humain
    la classe Fille hérite de la classe Femelle (une fille est une femme),
    Les différentes implémentations de je_réfléchis surchargent les précédentes

Discussions similaires

  1. Héritage Multiple en Java
    Par tchernogod dans le forum Général Java
    Réponses: 2
    Dernier message: 23/05/2011, 12h53
  2. Héritage multiple en Java
    Par nsanabi dans le forum Général Java
    Réponses: 3
    Dernier message: 26/01/2011, 18h58
  3. Héritage multiple en JAVA
    Par y.medium dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2008, 23h59
  4. [DC] Héritage multiple (en java)
    Par c0rt0 dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 20/02/2008, 10h52
  5. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03

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