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


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut héritage et casting
    bonsoir,

    si j'ai une classe C1 qui a deux sous classes C2 ET C3

    quelle est la différence entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    C1 toto = new C2(); 
    et 
    C2 bla = new C2();
    et
    C1 bb = new C1()
    bb = (C1)bla
    merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 411
    Points : 192
    Points
    192
    Par défaut
    salut,

    C1 toto = new C2(); // déclaration d'une instance de C1 avec comme type
    //dynamique C2

    C2 bla = new C2(); //déclaration d'une instance de C2 (type statique = type
    //dynamique)

    C1 bb = new C1(); // déclaration d'une instance de C1 (type statique = type
    //dynamique)

  3. #3
    Membre régulier Avatar de dinver
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 122
    Points : 110
    Points
    110
    Par défaut
    Merci bien pour la réponse
    peut-être j'ai mal posé ma question

    je voulais savoir la différence càd si les 3 classes ont une méthode test() qui affiche je suis la classe Cx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    toto.test() affichera "je suis la classe C2" 
    bla.test() affichera aussi "je suis la classe C2"
    Donc quel sera l'intérêt de faire à noter que d'après ce que j'ai compris C1 toto = new C2(); instancie un objet C2 mais qui est vu comme C1 on appelant toto.test() on appelle la méthode test() de C2 et pas de C1

    en plus est-il possible d'expxliquer davantage les types statiques et dynmaiques

    Un peu d'éclairssicement svp

  4. #4
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    L'intérêt de faire C1 bla = new C2(); réside dans le polymorphisme.

    Pour faire simple, et par l'exemple :
    Supposons que tu aies une classe A et deux classes B et C qui héritent de A.
    Supposons que tu aies :
    - A a = new A();
    - A b = new B();
    - A c = new C();
    Tu peux créer un vecteur composé des objets a, b et c et le traiter comme s'il s'agissait d'objets de type A, càd invoquer les méthodes appartenant à la classe A et donc héritées par B et C.

    L'intêret est que lorsque tu appeleras ta méthode test(), c'est celle "spécialisée" dans ta sous classe qui sera appelée et dans le cas où il n'y a pas de spécialisation de cette méthode, c'est celle de la classe mère qui sera invoquée.

Discussions similaires

  1. Gestion mémoire, héritage et cast
    Par Nemix dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2013, 11h50
  2. [POO] héritage et cast
    Par mikekiche dans le forum Langage
    Réponses: 8
    Dernier message: 04/08/2010, 10h11
  3. Héritage, Généricité, Cast?!
    Par aroussi_sanaa dans le forum Général Java
    Réponses: 1
    Dernier message: 04/05/2009, 11h10
  4. Héritage et casting en java
    Par menzlitsh dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2007, 12h23
  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