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 :

transtypage, héritage et surcharge!


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 59
    Points : 26
    Points
    26
    Par défaut transtypage, héritage et surcharge!
    Bonjour

    Voici mon problème :

    ((Salarie)I.previous()).affichage();

    I étant un listerator d'un arrayliste contenant des types d'objets différents :
    1 - Des objets "salarie"s
    2 - Des objets "commercial"s héritant de la classe "salarie"
    affichage étant une fonction surchargée permettant d'afficher les différents attributs des objets...

    Ma question est pourquoi ça marche même quand je demande d'afficher un Commercial? C'est à dire pourquoi tous les attributs de mon "commercial" sont affichés? Du transtypage descendant automatique? :s Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Révise ton cours de polymorphisme.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Points : 135
    Points
    135
    Par défaut
    C'est à cause du principe du polymorphisme et du dynamic binding de Java.

    Il faut différencier le type déclaré (ici Salarie) et le type réel (Commercial). Quand tu appelles la méthode affichage sur un objet de type Salarie mais qui est réellement de type Commercial, c'est la méthode redéfinie (et non surchargée) dans Commercial qui est exécutée.
    Ce mode d'exécution est systématique en Java.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 59
    Points : 26
    Points
    26
    Par défaut
    Kirua12, merci.
    Il est évident que je suis en train d'apprendre JAVA et que mon problème était l'intergration conceptuel du polymorphisme... J'ai bien compris grâce au concept d'interface la redirection à l'exécution vers les bonnes méthodes qui s'opère... le polymorphisme quoi ... Si ça peut aider quelqu'un.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/02/2008, 14h58
  2. [Problème] Héritage et surcharge
    Par kamykaze dans le forum C++
    Réponses: 8
    Dernier message: 13/11/2007, 14h18
  3. [POO] Héritage et surcharge de méthodes
    Par defkid dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2007, 14h51
  4. héritage et surcharge
    Par babar63 dans le forum C++
    Réponses: 7
    Dernier message: 17/01/2007, 23h23
  5. [G++] Héritage et surcharge de fonction
    Par Beuss dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 15/05/2006, 09h18

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