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 :

Interface, héritage et méhode toString


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de _Von_
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mongolie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2011
    Messages : 22
    Points : 73
    Points
    73
    Par défaut Interface, héritage et méhode toString
    Bonjour,

    Etant débutant en Java, j'ai un problée que je n'arrive pas à résoudre et sur lequel j'aurais besoin d'un peu d'aide.
    Pour présenter le contexte, j'ai une interface I définie de la façons suivante*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface I
    {
    	public String toString();
    	public String toSimpleString();
    }
    Deux classes abstraites dérivent de cette interface, A1, A2 ayant le prototype suivant*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public abstract class A1
    {
    	public abstract String toString();
    	public abstract String toSimpleString();
    }
    Et pour terminer un ensemble de classes qui sont dérivées de mes deux classes abstraites avec le protoype suivant*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class C1
    {
    	public String toString()
    	{
    		implémentation de la fonction
    	}
     
    	public String toSimpleString()
    	{
    		implémentation de la fonction
    	}
    }
    Dans une classe que j'utilise pour faire mes différentes opérations, j'ai crée un List<I> que je remplis avec des classes C1, C2, C3.
    Mon probléme étant que je souhaite parcourir ma liste List<I> et appeler mes fonctions toString() et toSimpleString(), ce que je fais
    malheureusement rien n'est affiché à l'écran. Est-ce possible ?
    J'avais pensé à changer mon interface par un classe abstraite ?

    Merci d'avance pour vos conseils

  2. #2
    Membre confirmé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Points : 645
    Points
    645
    Par défaut
    Tu peux nous donner un exemple de comment tu utilises tes méthodes.

    Aussi, dans ton exemple, C1 n'implémente pas l'interface I. Je vois donc mal comment tu mettrais une instance de la classe C1 dans un List<I>

    A tout hasard, garde aussi à l'esprit que tes méthodes renvoient un String. Donc juste les appeler ne fera rien si tu n'affiches pas (par exemple) le résultat. Par exemple avec un System.out.println(monI.toString())

    Dernière remarque, une interface possédant la méthode toString() est inutile, puisque cette méthode est présente dans la classe Object et que donc a fortiori TOUTES les classes ont déjà une implémentation de cette méthode.
    Je sais que désormais vivre est un calembour,
    La mort est devenue un état permanent,
    Le monde est aux fantômes, aux hyènes et aux vautours.
    Moi je vous dis bravo et vive la mort.

  3. #3
    Membre régulier Avatar de _Von_
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mongolie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2011
    Messages : 22
    Points : 73
    Points
    73
    Par défaut
    Merci pour ta réponse.

    En effet c'est un oubli de ma part, ma classe abstraite (A1) implemente l'interface (I) et mes classes C1, C2, C3 extendent ma classe Abstraite (A1).
    J'ai quelques problémes pour corriger le code de mon message précédent depuis l'ordinateur ou je suis, je réessayerais ce soir.

    Ma méthode toString() étant bien appelée dans un System.out.println()

  4. #4
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Comme le dit @Satch la méthode toString() te renverra toujours quelque chose puisqu'elle est définie au niveau de la classe Object. Donc à priori c'est plutôt un problème dans ta méthode qui fait que ça ne renvoie rien (une chaine vide, ou null ?).

    Peut tu nous poster le corps de ta méthode ainsi que le code d'appel pour confirmer ?

    Cdt.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ne pas exclure la possibilité non plus que la liste soit vide ou que le code de parcours ne soit jamais appelé ou qu'une Exception soit lancée. Bref, sans ton code, on ne peut pas t'aider, mais ça n'a a priori rien à voir avec les interfaces ton problème.

Discussions similaires

  1. [C++\Delphi] Interface, Héritage et Supports !
    Par ShaiLeTroll dans le forum Langage
    Réponses: 18
    Dernier message: 29/07/2011, 15h52
  2. Réponses: 6
    Dernier message: 08/02/2008, 14h58
  3. [Héritage et Interfaces] Quelle solution choisir ?
    Par BlackWood dans le forum Langage
    Réponses: 10
    Dernier message: 14/11/2006, 11h08
  4. Réponses: 3
    Dernier message: 30/08/2006, 15h35
  5. Interface et héritage
    Par pirbd dans le forum Delphi
    Réponses: 2
    Dernier message: 12/07/2006, 13h40

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