Je sais que c'est une question triviale mais je pensais que c'était clair et
finalement je reçois une erreur...
J'ai une classe Evaluation avec deux contructeurs : public Evaluation() et
public Evaluation( String content )
J'ai deux sous-classes : ClientEvaluation et WorkerEvaluation.
Je pensais que je n'aurai rien de plus à déclarer dans les sous-classes
concernant les constructeurs, je pensais qu'il seraient hérités de
Evaluation, mais non, j'ai du les déclarer car : "The constructor
ClientEvaluation(String) is undefined"...
Comment ça se fait, les constructeurs ne devraient-ils pas être hérités ?
dans l'article 42845a48$0$5849$, Kupee à a écrit le 13/05/05 9:41 :
Fabien Bergeret wrote:
Bof c'est inutile parfois : int i; if (test) { i = 1; } else { i = 2; } on est sur d'initialiser i, pas besoin de faire une affectation supplémentaire, même si ca sera négligeable point de vue performances
Manque de bol, une variable locale doit toujours etre initialisee, car contrairement a un attribut, elle n'a pas de valeur par defaut ...
Je vois pas ou est le manque de bol ici justement, car dans mon exemple la variable i sera bien initialisée soit dans la clause vrai du if soit dans le else. Tu peux essayer ca compile et ca marche, le compilateur est assez intelligent pour gérer ca.
Par contre
Class maClass;
if(test) { maClass = new Class("a"); } else { maClass = new Class("b"); }
MaClass.faitquelqueChose();
Je ne suis pas sur que ca passe a la compile. (Pas d'outil de dev sous la main)
Il faut je crois Class maClass = null;
dans l'article 42845a48$0$5849$626a14ce@news.free.fr, Kupee à rien@rien.rien
a écrit le 13/05/05 9:41 :
Fabien Bergeret wrote:
Bof c'est inutile parfois :
int i;
if (test) {
i = 1;
} else {
i = 2;
}
on est sur d'initialiser i, pas besoin de faire une affectation
supplémentaire, même si ca sera négligeable point de vue performances
Manque de bol, une variable locale doit toujours etre initialisee, car
contrairement a un attribut, elle n'a pas de valeur par defaut ...
Je vois pas ou est le manque de bol ici justement, car dans mon exemple
la variable i sera bien initialisée soit dans la clause vrai du if soit
dans le else. Tu peux essayer ca compile et ca marche, le compilateur
est assez intelligent pour gérer ca.
Par contre
Class maClass;
if(test) {
maClass = new Class("a");
} else {
maClass = new Class("b");
}
MaClass.faitquelqueChose();
Je ne suis pas sur que ca passe a la compile.
(Pas d'outil de dev sous la main)
dans l'article 42845a48$0$5849$, Kupee à a écrit le 13/05/05 9:41 :
Fabien Bergeret wrote:
Bof c'est inutile parfois : int i; if (test) { i = 1; } else { i = 2; } on est sur d'initialiser i, pas besoin de faire une affectation supplémentaire, même si ca sera négligeable point de vue performances
Manque de bol, une variable locale doit toujours etre initialisee, car contrairement a un attribut, elle n'a pas de valeur par defaut ...
Je vois pas ou est le manque de bol ici justement, car dans mon exemple la variable i sera bien initialisée soit dans la clause vrai du if soit dans le else. Tu peux essayer ca compile et ca marche, le compilateur est assez intelligent pour gérer ca.
Par contre
Class maClass;
if(test) { maClass = new Class("a"); } else { maClass = new Class("b"); }
MaClass.faitquelqueChose();
Je ne suis pas sur que ca passe a la compile. (Pas d'outil de dev sous la main)
Il faut je crois Class maClass = null;
Sébastien
Par contre
Class maClass;
if(test) { maClass = new Class("a"); } else { maClass = new Class("b"); }
MaClass.faitquelqueChose();
maClass :))
Je ne suis pas sur que ca passe a la compile. (Pas d'outil de dev sous la main)
Il faut je crois Class maClass = null;
si si, ça marche sans le "= null". Le compilo veut que la variable, quelle qu'elle soit, soit initialisée au moment de sa première utilisation et il est assez intelligent pour repérer que, dans l'exemple que tu donnes, elle l'est quoi qu'il arrive.
Sébastien
Par contre
Class maClass;
if(test) {
maClass = new Class("a");
} else {
maClass = new Class("b");
}
MaClass.faitquelqueChose();
maClass :))
Je ne suis pas sur que ca passe a la compile.
(Pas d'outil de dev sous la main)
Il faut je crois Class maClass = null;
si si, ça marche sans le "= null".
Le compilo veut que la variable, quelle qu'elle soit, soit initialisée au moment de sa première
utilisation et il est assez intelligent pour repérer que, dans l'exemple que tu donnes, elle l'est
quoi qu'il arrive.
if(test) { maClass = new Class("a"); } else { maClass = new Class("b"); }
MaClass.faitquelqueChose();
maClass :))
Je ne suis pas sur que ca passe a la compile. (Pas d'outil de dev sous la main)
Il faut je crois Class maClass = null;
si si, ça marche sans le "= null". Le compilo veut que la variable, quelle qu'elle soit, soit initialisée au moment de sa première utilisation et il est assez intelligent pour repérer que, dans l'exemple que tu donnes, elle l'est quoi qu'il arrive.
Sébastien
pi314159
NON les constructeurs en java ne sont pas hérité. Tu dois spécifier le constructeur dans chaque classe & sous classe, a moins de ne rien mettre, alors c'est java qui fournit un constructeur par défaut lors de la compilation. Tu peux redéfinir ou surcharger tes constructeurs, mais retiens que les constructeurs d'objet ne sont pas hérités en java :)
Voila
MG
"LR" wrote in message news:42834dca$
Salut,
Je sais que c'est une question triviale mais je pensais que c'était clair et
finalement je reçois une erreur...
J'ai une classe Evaluation avec deux contructeurs : public Evaluation() et public Evaluation( String content )
J'ai deux sous-classes : ClientEvaluation et WorkerEvaluation.
Je pensais que je n'aurai rien de plus à déclarer dans les sous-classes concernant les constructeurs, je pensais qu'il seraient hérités de Evaluation, mais non, j'ai du les déclarer car : "The constructor ClientEvaluation(String) is undefined"...
Comment ça se fait, les constructeurs ne devraient-ils pas être hérités ?
Merci d'avance Lilian
NON les constructeurs en java ne sont pas hérité. Tu dois spécifier le
constructeur dans chaque classe & sous classe, a moins de ne rien mettre,
alors c'est java qui fournit un constructeur par défaut lors de la
compilation. Tu peux redéfinir ou surcharger tes constructeurs, mais retiens
que les constructeurs d'objet ne sont pas hérités en java :)
Voila
MG
"LR" <lrN.O.S.P.A.M@sib.org> wrote in message
news:42834dca$1_3@news.bluewin.ch...
Salut,
Je sais que c'est une question triviale mais je pensais que c'était clair
et
finalement je reçois une erreur...
J'ai une classe Evaluation avec deux contructeurs : public Evaluation() et
public Evaluation( String content )
J'ai deux sous-classes : ClientEvaluation et WorkerEvaluation.
Je pensais que je n'aurai rien de plus à déclarer dans les sous-classes
concernant les constructeurs, je pensais qu'il seraient hérités de
Evaluation, mais non, j'ai du les déclarer car : "The constructor
ClientEvaluation(String) is undefined"...
Comment ça se fait, les constructeurs ne devraient-ils pas être hérités ?
NON les constructeurs en java ne sont pas hérité. Tu dois spécifier le constructeur dans chaque classe & sous classe, a moins de ne rien mettre, alors c'est java qui fournit un constructeur par défaut lors de la compilation. Tu peux redéfinir ou surcharger tes constructeurs, mais retiens que les constructeurs d'objet ne sont pas hérités en java :)
Voila
MG
"LR" wrote in message news:42834dca$
Salut,
Je sais que c'est une question triviale mais je pensais que c'était clair et
finalement je reçois une erreur...
J'ai une classe Evaluation avec deux contructeurs : public Evaluation() et public Evaluation( String content )
J'ai deux sous-classes : ClientEvaluation et WorkerEvaluation.
Je pensais que je n'aurai rien de plus à déclarer dans les sous-classes concernant les constructeurs, je pensais qu'il seraient hérités de Evaluation, mais non, j'ai du les déclarer car : "The constructor ClientEvaluation(String) is undefined"...
Comment ça se fait, les constructeurs ne devraient-ils pas être hérités ?