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 et casting en java


Sujet :

Langage Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 194
    Points : 69
    Points
    69
    Par défaut Héritage et casting en java
    Bonjour,
    j'ai une class B extends A
    j'ai aussi une classe C extends A

    j'ecrit ces ligne de code:
    A b = new B();
    ou bien
    A c = new C();
    jusque l'a c'est bon
    est-ce que c'est possible de faire ((B)b).methodeB();
    ou bien ((C)c).methodeC(); ???
    Parce que je pense qu'il me suffit de faire directement b.methodeB(); ou bien c.methodeC() puisque déjà j'ai fait l'instanciation de l'objet b avec le constructeur B() et c avec le contructeur C();
    Merci de m'expliquer ce point.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Tout dépend...

    Ton objet est déclaré comme étant de type A.

    Donc si ta méthode "methodeB()" n'existe pas dans la classe A, tu es obligé de faire un cast explicite de b en B pour pouvoir l'invoquer.

    Maintenant, si A possède "methodeB()", abstraite ou redéfinie ("override" avec la même signature) dans la classe B, b.methodeB() invoquera la méthode de la classe B et non celle de la classe A.

    C'est là toute la puissance des langages objet. Le choix de la méthode à utiliser est fait dynamiquement à l'exécution en fonction du type réel de ton objet en cas de redéfinition de méthodes dans les héritages.

    Pour plus d'informations sur le sujet, lis donc un tutoriel sur le sujet!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    Juste pour compléter la bonne explication de Cyberchouan, je dirais que le but d'un langage objet est justement de te donner la capacité de t'affranchir du type d'objet que tu manipules et d'éviter les cast
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 194
    Points : 69
    Points
    69
    Par défaut
    Merci pour vous.
    Ben si c'est possible est-ce que vous pouvez m'indiquer ou je peux trouver un toturial Java qui traite aussi les bonnes pratiques de dévellopement OO avec java.
    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2009, 18h39
  2. Cast et java
    Par ToTo13 dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2007, 14h39
  3. Cast de java.util.DATE à java.sql.DATE
    Par mnemonic78 dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2007, 08h21
  4. héritage et casting
    Par dinver dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2005, 23h23
  5. [DP][héritage]sous-casting dynamique
    Par Le prophete dans le forum Général Java
    Réponses: 4
    Dernier message: 20/08/2004, 11h56

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