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 :

[Debutant][Conception] Classes abstraites et interface.


Sujet :

Langage Java

  1. #1
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut [Debutant][Conception] Classes abstraites et interface.
    Voici mon probleme :
    Lors d'un premier exercice , j'ai du crée une interface Mesurable , declarant la methode getSurface(). que je devais implementer a 3 classes(Carre Disque et Anneau) , pour qu'au final je puisse avoir la somme des surfaces de l'ensemble des 3 classes , par un tableau de Mesurable.

    Jusqua la aucun problème , mais pour l'exercice suivant , on me demande de crée une classe Abstraite qui déclare getSurface() et defini min() , qui donne le plus petit entre le receveur et l'argument ( receveur.min(argument); ) , j'enleve mes implementations , je fait heriter a mes 3 classes ma classe abstraite , et je test mon min() sur des instace des 3 classes sans problèmes toujours.

    Mais la question suivante me demande : comment faire pour conserver
    Mesurable et la classe Abstraite , et la je bloque , j'ai implementer Mesurable a ma classe abstraite , et je test donc la methode min sur des instance Mesurable stocker dans un tableau ( Pour la somme des surfaces , javais un tableau de Mesurable , contenant soit des Disque , Carre ou Anneau ). Je recoie l'erreur canot resolve symbol.

    J'ai aussi tenter de definir min() ; dans l'interface implenter a la classe Abstraite , et j'ai recu cet erreur : min() in Mesurable cannot be applied to (Mesurable).

    Donc voila si quelqu'un pouvais m'en dire plus .
    (Si besoin d'infos en plus je tenterai de les donner , les codes sources je peux les donenr avant mercredi soir dsl ^^ )
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  2. #2
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    tu peux mettre ton code ? ca sera plus simple pour te repondre
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    Alors... comment expliquer ça clairement...

    Le problème vient que dans ton tableau tu stocke des objets de type Mesurable, mais ta méthode min est défini dans ta classe abstraite.

    En gros ça donne
    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
     
    class Carre extends AbstractClass implements Mesurable {...}
    class Anneau extends AbstractClass implements Mesurable {...}
    class Disque extends AbstractClass implements Mesurable {...}
     
    interface Mesurable
    {
       int getSurface();
    }
     
    abstract class AbstractClass implements Mesurable
    {
        AbstractClass min(AbstractClass arg) {...}
        ...
    }
    Donc en gros si tu as un objet de type Mesurable tu ne peux pas appeler min... pour ça il faut qu'il soit de type AbstractClass (ou d'un des 3 types qui en hérite)

    Il faut donc que tu fasse un cast.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AbtractClass ac1 = (AbstractClass)myTable[i]; // myTable table contenant des "Mesurable"
    AbtractClass ac2 = (AbstractClass)myTable[j];
     
    ac1.min(ac2);
    Si tu as envie de travailler, assieds-toi et attends que ça passe...

  4. #4
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Je tente cela ce soir même , merci de la reponse , si sa passe pas je copierai les codes demain matin ^^
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

  5. #5
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Donc voila je viens de tester , sa marche impect , grand merci.
    Seul probleme c'est que j'ai du caster chaque elements du tableau , le cast d'un tableau de Mesurable en tableau d 'Abstract , n'etant pas possible ^^.
    Règles du club -> Cliquez-ici
    FAQ Hardware -> Cliquez-ici
    Vous avez résolu votre souci ->
    F1 et Google sont vos amis.

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

Discussions similaires

  1. Difference entre Class Abstraite et interface
    Par menzlitsh dans le forum Langage
    Réponses: 11
    Dernier message: 05/07/2007, 13h04
  2. Classe abstraite et interface
    Par ender91 dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2007, 11h46
  3. Réponses: 5
    Dernier message: 28/03/2007, 17h28
  4. [Conception] Classe abstraite ou singleton
    Par speedster dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2007, 10h39
  5. [Debutant] Une classe abstraite en parametre ?
    Par kiroukou dans le forum Débuter
    Réponses: 8
    Dernier message: 03/02/2005, 15h05

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