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 :

[Language][Héritage] Erreur à propos du constructeur


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Par défaut [Language][Héritage] Erreur à propos du constructeur
    slt a tous,

    j'ai une erreur en java dans eclipse qui est :"Implicit super constructor voiture() is undefined. Must explicitly invoke another constructor" lorsque j'etent la classe voiture a ma classe roue()

    quelqu'un saurait-il pourquoi??

    merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Par défaut
    J'ai peur de mal comprendre...tu veux dire que ta roue hérite de voiture ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class Roue extends Voiture {
    ...
    }
    Si c'est ca, ton choix d'héritage me parait douteux.

    Enfin bon, concernant le message, il t'informe que ta sous-classe utilise un constructeur vide qui n'existe pas dans la superclasse (la première action, explicite ou implicite, d'un constructeur est l'appel au constructeur de sa superclasse). Tu dois préciser explicitement dans le constructeur de ta sous-classe le constructeur de la superclasse à appeler.

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Ben je dirai que t'as pas défini de constructeur vide voiture()...
    Après faudrait un peu de code pour pouvoir faire une analyse plus poussée.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Citation Envoyé par dlemoing
    J'ai peur de mal comprendre...tu veux dire que ta roue hérite de voiture ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class Roue extends Voiture {
    ...
    }
    Si c'est ca, ton choix d'héritage me parait douteux.

    Enfin bon, concernant le message, il t'informe que ta sous-classe utilise un constructeur vide qui n'existe pas dans la superclasse (la première action, explicite ou implicite, d'un constructeur est l'appel au constructeur de sa superclasse). Tu dois préciser explicitement dans le constructeur de ta sous-classe le constructeur de la superclasse à appeler.
    Oui comme le dis dlemoing, tu n'as pas a avoir d'héritage entre Voiture et Roue, en effet une roue n'est pas "une sorte de" voiture, tu as plutot une voiture "est composée" de roues => c'est donc une relation de composition que tu dois avoir!! En fait ta classe voiture doit contenir 4 propriétés ( ou une liste de) roues

    Il faut revoir ton modele objet

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    A part le nom des classes, ton erreur vient techniquement du fait que lorsque tu ne precise pas quel constructeur de voiture appeler, il essaie d'appeler voiture(), qui n'existe pas.
    Illustration :
    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
    18
    19
    20
    21
    22
    public class Voiture {
      public Voiture(String marque) {...}
     
      public Voiture(String marque, Color couleur) {...}
    }
     
    public class Roue extends Voiture {
     
      public Roue() {
        super();       //appelle (explicitement) le constructeur Voiture() qui n'existe pas => erreur de compilation
        ...
      }
     
      public Roue() {
        ...     // pas de super-constructeur => appelle par defaut (implicitement) Voiture() => erreur
      }
     
      public Roue() {
        super("Regeauèn"); // appelle (explicitement) Voiture(String) qui existe => ca compile
        ...
      }
    }
    Voila.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Erreur d'appel au constructeur
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 29/05/2014, 14h42
  2. Erreur invocation d'un constructeur RTTI
    Par Moez.B dans le forum Langage
    Réponses: 4
    Dernier message: 22/04/2013, 23h49
  3. Erreur étonnante à propos des pointeurs!
    Par dingua dans le forum Débuter
    Réponses: 17
    Dernier message: 21/12/2009, 12h10
  4. message d erreur a propos de JSF
    Par fido1 dans le forum JSF
    Réponses: 5
    Dernier message: 26/01/2009, 17h28

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