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 :

question sur l'héritage


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut question sur l'héritage
    Bonjour,

    j'aimerais savoir :

    par exemple, on a une classe lot, qui contient des articles, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class Lot extends Article{
    private Article article;
    ....

    Est ce que je suis obligée d'hériter de la classe "Article" pour pouvoir utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private Article article;
    dans ma classe Lot ?

  2. #2
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    L'héritage te permet d'étendre le comportement d'une classe par une autre classe. L'exemple le plus simple est la voiture, le bateau et le vélo. Tous les trois sont des moyen de déplacement.

    La voiture est une classe qui peut heriter de la classe moyen de déplacement. Voiture a donc toutes les méthodes et attributs de la classe moyen de déplacement -méthodes et attributs non "private".

    Tu n'es pas obligé d'hériter de la classe Article pour utiliser les méthodes. Par contre, si tu places une telle ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class Lot extends Article{
    private Article article;
    c'est que tu as besoin d'avoir une instance de la classe Article, pour un traitement, ou comportement, de la classe Lot. Par cette ligne, tu ne fais pas un héritage, mais une agrégation ou composition (puristes UML ??)

    nota : par convention, les classes sont notées avec une majuscule, sont instance, en minuscule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public class Lot extends Article{
      private Article article=new Article();
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Lorantus Voir le message
    Tu n'es pas obligé d'hériter de la classe Article pour utiliser les méthodes. Par contre, si tu places une telle ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class Lot extends Article{
    private Article article;
    c'est que tu as besoin d'avoir une instance de la classe Article, pour un traitement, ou comportement, de la classe Lot. Par cette ligne, tu ne fais pas un héritage, mais une agrégation ou composition (puristes UML ??)

    Ah oui, tout à fait ! UML ?! Oui, oui

    Je comprends mieux maintenant,

    MERCI pour ces explications trés claires

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Ah oui, juste une chose :

    si j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     private Article article
    dans ma classe Lot, sans pour autant en créer une instance, je suis obligée d'importer la classe Artcile dans ma classe Lot, non ?

  5. #5
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    oui.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Importer une classe permet également (comme pour l'héritage) d'avoir accés aux membres et aux méthodes de cette classe (non privés).Sauf que l'héritage permet beaucoup plus, notamment créer une instance de cette classe.

    Vrai ??

  7. #7
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    L'idée de l'héritage est vraiment de considérer l'objet hérité -ou étendu 'extends' comme une base pour le nouvel objet. Tu as un nouveau comportemant, des méthodes en plus ou différentes (surcharges), qui vienne compléter l'objet hérité.

    Dans le cas d'un objet membre, tu considéres une différence entre les deux objets (contenant et contenu).

    J'ajoute ces précisions au "vrai"...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions sur l'héritage multiple
    Par beegees dans le forum C++
    Réponses: 12
    Dernier message: 31/03/2008, 17h01
  2. Question sur l'héritage (débutant en C++)
    Par beegees dans le forum C++
    Réponses: 19
    Dernier message: 30/03/2008, 14h45
  3. petite question sur l'héritage et les cast
    Par baedal dans le forum Langage
    Réponses: 3
    Dernier message: 29/02/2008, 00h48
  4. Questions sur l'héritage dans Matisse
    Par Cassios dans le forum NetBeans
    Réponses: 8
    Dernier message: 14/03/2007, 23h23
  5. Question sur l'héritage
    Par the big ben 5 dans le forum Delphi
    Réponses: 28
    Dernier message: 06/06/2006, 17h27

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