Bonjour
J'ai une classe C qui utilise une classe B, la classe B hérite de la
classe A:
public class A {
...
public A()
{
....
}
public A(int w, int x, int y, int z)
{
....
}
....
}
public class B extends A {
...
// pas de constructeur
}
public class C {
private B b;
class void init()
{
b = new B(0,0,10,10);
}
...
}
Et j'ai l'erreur suivante en compilat C:
C.java:10: cannot resolve symbol
symbol : constructor B (int,int,int,int)
location: class B
b = new B(0,0,10,10);
^
Je pensais que B n'ayant pas de constructeur, le constructeur de son
parent 1 serait utilisé. J'ai mal compris ou l'erreur est ailleurs?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Cantin
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments. C'est la classe B qui voient comment elle doit se construire, et non pas la classe A qui doit le faire pour elle. La classe B peut cependant utiliser les constructeurs de la classe A pour initialiser les donnees heritees de la classe A. Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il faut que tu les declares dans la classe B et que tu utilises lemot clef "super" pour faire reference au constructeurs de A a partir de B.
"julien" ??? news:413fe6ec$0$20460$ ???...
Bonjour J'ai une classe C qui utilise une classe B, la classe B hérite de la classe A: public class A { ... public A() { .... }
public A(int w, int x, int y, int z) { .... } .... }
public class B extends A { ... // pas de constructeur }
public class C { private B b;
class void init() { b = new B(0,0,10,10); } ... }
Et j'ai l'erreur suivante en compilat C: C.java:10: cannot resolve symbol symbol : constructor B (int,int,int,int) location: class B b = new B(0,0,10,10); ^
Je pensais que B n'ayant pas de constructeur, le constructeur de son parent 1 serait utilisé. J'ai mal compris ou l'erreur est ailleurs?
Merci Julien
Une classe n'a que les constructeurs qu'elle declare + le constructeur
implicite qui n'a pas d'arguments.
C'est la classe B qui voient comment elle doit se construire, et non pas la
classe A qui doit le faire pour elle.
La classe B peut cependant utiliser les constructeurs de la classe A pour
initialiser les donnees heritees de la classe A.
Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il
faut que tu les declares dans la classe B et que tu utilises lemot clef
"super" pour faire reference au constructeurs de A a partir de B.
Bonjour
J'ai une classe C qui utilise une classe B, la classe B hérite de la
classe A:
public class A {
...
public A()
{
....
}
public A(int w, int x, int y, int z)
{
....
}
....
}
public class B extends A {
...
// pas de constructeur
}
public class C {
private B b;
class void init()
{
b = new B(0,0,10,10);
}
...
}
Et j'ai l'erreur suivante en compilat C:
C.java:10: cannot resolve symbol
symbol : constructor B (int,int,int,int)
location: class B
b = new B(0,0,10,10);
^
Je pensais que B n'ayant pas de constructeur, le constructeur de son
parent 1 serait utilisé. J'ai mal compris ou l'erreur est ailleurs?
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments. C'est la classe B qui voient comment elle doit se construire, et non pas la classe A qui doit le faire pour elle. La classe B peut cependant utiliser les constructeurs de la classe A pour initialiser les donnees heritees de la classe A. Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il faut que tu les declares dans la classe B et que tu utilises lemot clef "super" pour faire reference au constructeurs de A a partir de B.
"julien" ??? news:413fe6ec$0$20460$ ???...
Bonjour J'ai une classe C qui utilise une classe B, la classe B hérite de la classe A: public class A { ... public A() { .... }
public A(int w, int x, int y, int z) { .... } .... }
public class B extends A { ... // pas de constructeur }
public class C { private B b;
class void init() { b = new B(0,0,10,10); } ... }
Et j'ai l'erreur suivante en compilat C: C.java:10: cannot resolve symbol symbol : constructor B (int,int,int,int) location: class B b = new B(0,0,10,10); ^
Je pensais que B n'ayant pas de constructeur, le constructeur de son parent 1 serait utilisé. J'ai mal compris ou l'erreur est ailleurs?
Merci Julien
Xavier
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par défaut, sinon, elle n'a que les constructeur qu'elle déclare et pas celui par défaut, qu'il faut ajouter explicitement si nécessaire.
Xavier
Une classe n'a que les constructeurs qu'elle declare + le constructeur
implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par défaut,
sinon, elle n'a que les constructeur qu'elle déclare et pas celui par
défaut, qu'il faut ajouter explicitement si nécessaire.
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par défaut, sinon, elle n'a que les constructeur qu'elle déclare et pas celui par défaut, qu'il faut ajouter explicitement si nécessaire.
Xavier
Vincent Cantin
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par déf aut,
sinon, elle n'a que les constructeur qu'elle déclare et pas celui par défaut, qu'il faut ajouter explicitement si nécessaire.
Xavier
Tout a fait juste, merci pour la precision.
Vincent
Une classe n'a que les constructeurs qu'elle declare + le constructeur
implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par déf
aut,
sinon, elle n'a que les constructeur qu'elle déclare et pas celui par
défaut, qu'il faut ajouter explicitement si nécessaire.
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments.
Non. Si une classe ne déclare pas de constructeur, elle a celui par déf aut,
sinon, elle n'a que les constructeur qu'elle déclare et pas celui par défaut, qu'il faut ajouter explicitement si nécessaire.
Xavier
Tout a fait juste, merci pour la precision.
Vincent
julien
Vincent Cantin wrote:
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments. C'est la classe B qui voient comment elle doit se construire, et non pas la classe A qui doit le faire pour elle. La classe B peut cependant utiliser les constructeurs de la classe A pour initialiser les donnees heritees de la classe A. Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il faut que tu les declares dans la classe B et que tu utilises lemot clef "super" pour faire reference au constructeurs de A a partir de B.
Merci pour ces précisions
Julien
Vincent Cantin wrote:
Une classe n'a que les constructeurs qu'elle declare + le constructeur
implicite qui n'a pas d'arguments.
C'est la classe B qui voient comment elle doit se construire, et non pas la
classe A qui doit le faire pour elle.
La classe B peut cependant utiliser les constructeurs de la classe A pour
initialiser les donnees heritees de la classe A.
Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il
faut que tu les declares dans la classe B et que tu utilises lemot clef
"super" pour faire reference au constructeurs de A a partir de B.
Une classe n'a que les constructeurs qu'elle declare + le constructeur implicite qui n'a pas d'arguments. C'est la classe B qui voient comment elle doit se construire, et non pas la classe A qui doit le faire pour elle. La classe B peut cependant utiliser les constructeurs de la classe A pour initialiser les donnees heritees de la classe A. Si tu veux avoir tous les constructeurs de la classe A dans la classe B, il faut que tu les declares dans la classe B et que tu utilises lemot clef "super" pour faire reference au constructeurs de A a partir de B.