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 :

Probleme avec l'abstraction !!


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut Probleme avec l'abstraction !!
    HELLO LE MONDE !!

    J'ai un problème avec les classes abstraites:

    quand on implémente des classes telles que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    abstract class base(){
        public abstract void methode1();
        public abstract void methode2();
    }
     
    public class derivee1(){
        public abstract void methode1(){ .... }
        public abstract void methode2(){ .... }
            public une_autre_methode(){ .... }
    }
     
    public class derivee2(){
        public abstract void methode1(){ .... }
        public abstract void methode2(){ .... }
            public une_autre_methode(){ .... }
    }
    je fait un prgm de test avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ....
    ....main(....){
        base tab_classe[] = new base[2];
        tab_classe[0] = new derivee1();
        tab_classe[1] = new derivee2();
    }
    Et ensuite je peux appeler les méthodes communes pour chaque objets....

    LE PROBLEME: Pourquoi ne puis - je pas appeler les méthodes individuelles de chacun, par ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        tab_classe[0].une_autre_methode();
    MERCI ENCORE !!!!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut
    Dans ta parti de code ta oublier la clause extends pour derive1 et derive2...

    ex : public class Derivee1 extends Base {}

    par convention les classe débute par une majuscule...

    tu dois d'abord la caster en sa classe dériver avant d'appeler les méthodes spécifiques de la classe

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((derive1) tab_classe[0])).une_autre_methode();
    PS : la clause intanceof te permet de savoir si l'object est une instance d'une classe quelquonque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (tab_classe[0] instanceof derive1)
          ((derive1) tab_classe[0])).une_autre_methode();

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut REPONSE A TOUT CA....
    MERCI ET ENCORE MERCI !! (surtout pour la rapidité de la réponse)
    8)

  4. #4
    Membre habitué
    Avatar de guipom
    Inscrit en
    Janvier 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 207
    Points : 184
    Points
    184
    Par défaut
    au passage si toutes les classes filles redéfinissent une autre méthode, alors autant la mettre dans la classe mère et ne pas prendre de "risque" de cast

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut PB CAST.
    OK !! pas de problème !!
    8) 8) 8) 8)

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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