Java Héritage d'erreur: Implicit Super Constructeur n'est pas défini
Je suis un débutant en Java et juste apprentissage des concepts de programmation orientée objet. Veuillez consulter mon code. J'obtiens l'erreur suivante.- Implicite Super Constructeur n'est pas défini.
class BoxSuper
{
int height;
int length;
int width;
BoxSuper(BoxSuper obj)
{
height=obj.height;
length=obj.length;
width=obj.width;
}
BoxSuper(int a,int b,int c)
{
height=a;
length=b;
width=c;
}
BoxSuper(int val)
{
height=length=width=val;
}
int volume()
{
return height*length*width;
}
}
class BoxSub extends BoxSuper
{
int weight;
BoxSub(int a,int b,int c,int d)
{
height=a;
length=b;
width=c;
weight=d;
}
}
Je n'arrive pas à ajouter mon code.Comment puis-je ajouter?
Cliquez sur
Notez également qu'il y a un Markdown FAQ / modification d'aide, accessible via l'orange
Salut à tous.. j'ai ajouté le code enfin.. Mon principal était la cause du problème pour modifier le code.
double possible de Java erreur: Implicit super constructeur n'est pas défini pour le constructeur par défaut
Cliquez sur
edit
en dessous de votre question et de les couper et de coller le code. Mettez en surbrillance le code et appuyez sur ctrl-K
pour formater correctement.Notez également qu'il y a un Markdown FAQ / modification d'aide, accessible via l'orange
?
lorsque vous modifiez.Salut à tous.. j'ai ajouté le code enfin.. Mon principal était la cause du problème pour modifier le code.
double possible de Java erreur: Implicit super constructeur n'est pas défini pour le constructeur par défaut
OriginalL'auteur Teja | 2012-02-04
Vous devez vous connecter pour publier un commentaire.
Vous recevez ce message, car BoxSuper n'a pas un no-arg constructeur. Lors de votre appel de constructeur en BoxSub, si vous ne définissez pas de la super appel du constructeur Java essaie d'appeler automatiquement la non-arg constructeur super ().
Soit définir un super appel de constructeur en BoxSuper comme suit:
ou de définir un non-arg constructeur dans BoxSuper:
OriginalL'auteur John Ericksen
Un constructeur appelle toujours le super constructeur, toujours. Si pas d'appel explicite à la super constructeur, le compilateur essaie de le configurer de sorte qu'il va appeler le paramètre par défaut-moins de constructeur. Si un paramètre par défaut-moins de constructeur n'existe pas, une erreur de compilation que vous voyez est montré et la compilation échouera.
La solution dans votre cas est de explicitement appeler le super constructeur de la première ligne de votre Boîte de constructeur, et cela prend tout son sens si vous pensez à ce sujet puisque vous voulez initialiser le super avec a, b, et c juste comme l'écrit dans son constructeur:
hm, "ça ne marche pas" ne veut pas nous en dire beaucoup plus. Vous avez encore un bug et vous devrez nous montrer votre mise à jour du code de la tentative et les messages d'erreur que vous voyez.
Que voulez-vous dire qu'il ne fonctionne pas? Quelle erreur avez-vous observé?
La même erreur que le constructeur par défaut n'est pas visible
OriginalL'auteur Hovercraft Full Of Eels