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 le polymorphisme


Sujet :

avec Java

  1. #1
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut Question sur le polymorphisme
    Bonjour à toutes et à tous,

    Je suis en train de comprendre le polymorphisme en JAVA, et j'ai vu cet exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
     class TestA {
     public void start() { System.out.println("Class A"); }
     }
     public class TestB extends TestA {
     public void start() { System.out.println("Class B"); }
     public static void main(String[] args) {
     ((TestA)new TestB()).start();
     }
     }
    Le résultat de l'exécution est "Class B", mais j'aimerais bien comprendre pourquoi?; d'après ce que j'ai compris, le résultat est "Class B" parcequ'il s'agit d'une méthode redéfinie (Suis-je correct içi ?)

    Ou bien c'est parce qu'il s'agit du casting à ce niveau?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((TestA)new TestB()).start();
    De plus, est ce qu'on "cast" une référence ou bien un objet?

    Je suis un peu dans le brouillard ici , Pourriez-vous me fournir des explications à propos ce point la (même des liens auxquels je peux suivre!)

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 75
    Points : 138
    Points
    138
    Par défaut
    Tu as bien raison dans ton premier propos, le resultat est "ClassB" car tu a redifini la methode start().

    Parcontre si tu cree directement un objet de type ClassA la methode start() affichera "ClassA".

    Le Cast est la juste pour signifie que ta classB est egalement une ClassA, cette classe aura donc toute les methode de la classA mais egalement celle de la classB et si la ClassB redifini une des methode presente dans ClassA alors c'est celle la qui seront utilise.

  3. #3
    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
    le terme "cast" en Anglais est ambigu et a deux significations complètement différentes en Java. La même notation est employée et ça ajoute de la confusion .....
    Alors ça vaut le coup de se "caster" la tête pour trouver des termes en français.
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

Discussions similaires

  1. Question sur le polymorphisme
    Par X448GN dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/03/2009, 12h54
  2. Question sur le polymorphisme
    Par edogawa dans le forum Langage
    Réponses: 4
    Dernier message: 09/02/2009, 19h17
  3. [débutant] Question sur le polymorphisme
    Par coyotte507 dans le forum C++
    Réponses: 12
    Dernier message: 25/02/2007, 14h10
  4. [Héritage] Question sur le polymorphisme
    Par nikhil dans le forum C++
    Réponses: 7
    Dernier message: 28/12/2005, 20h33
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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