Signature sur constructeur dérivant d'une classe abstraite.
4 réponses
chico
Bonjour,
Excusez lka trivialité de ma question mais je me demande si l'on peut
forcer les classe dérivées d'une autre (absctraite ici en l'occurence
ou implementant une interface) à avoir au moins une signature donnée
pour au moins un de ses constructeur.
Pour etre clair :
je voudrai forcer toutes les classe dérivant ma classe A a avoir au
moins un constructeur prenant comme parametre un objet de type B
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
Nino
non, mais regarde le design de la fabrique et la fabrique abstraite. C'est un meilleur moyen pour arriver à ce que tu veux et certainement plus proprement.
"cyril" a écrit dans le message de news:
| Bonjour, | | Excusez lka trivialité de ma question mais je me demande si l'on peut | forcer les classe dérivées d'une autre (absctraite ici en l'occurence | ou implementant une interface) à avoir au moins une signature donnée | pour au moins un de ses constructeur. | | Pour etre clair : | | je voudrai forcer toutes les classe dérivant ma classe A a avoir au | moins un constructeur prenant comme parametre un objet de type B | | Je ne sais pas si cela peut se faire. | | Merci pour vos info.
non, mais regarde le design de la fabrique et la fabrique abstraite.
C'est un meilleur moyen pour arriver à ce que tu veux et certainement plus
proprement.
"cyril" <chico@grumly.info> a écrit dans le message de news:
3123d61c.0401190920.6f079eb4@posting.google.com...
| Bonjour,
|
| Excusez lka trivialité de ma question mais je me demande si l'on peut
| forcer les classe dérivées d'une autre (absctraite ici en l'occurence
| ou implementant une interface) à avoir au moins une signature donnée
| pour au moins un de ses constructeur.
|
| Pour etre clair :
|
| je voudrai forcer toutes les classe dérivant ma classe A a avoir au
| moins un constructeur prenant comme parametre un objet de type B
|
| Je ne sais pas si cela peut se faire.
|
| Merci pour vos info.
non, mais regarde le design de la fabrique et la fabrique abstraite. C'est un meilleur moyen pour arriver à ce que tu veux et certainement plus proprement.
"cyril" a écrit dans le message de news:
| Bonjour, | | Excusez lka trivialité de ma question mais je me demande si l'on peut | forcer les classe dérivées d'une autre (absctraite ici en l'occurence | ou implementant une interface) à avoir au moins une signature donnée | pour au moins un de ses constructeur. | | Pour etre clair : | | je voudrai forcer toutes les classe dérivant ma classe A a avoir au | moins un constructeur prenant comme parametre un objet de type B | | Je ne sais pas si cela peut se faire. | | Merci pour vos info.
Nicolas Delsaux
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
-- Nicolas Delsaux ZT> Tout nous vient de Crôm, le crédit comme le débit. Enfin, c'est ce ZT> que je me tue à expliquer à mon banquier, qui est un homme de peu ZT> de foi à la tête fort dure. ZT in frjn - Si tu crois pas à Crôm, prends un gnon
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux
mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au
moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette
magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
--
Nicolas Delsaux
ZT> Tout nous vient de Crôm, le crédit comme le débit. Enfin, c'est ce
ZT> que je me tue à expliquer à mon banquier, qui est un homme de peu
ZT> de foi à la tête fort dure.
ZT in frjn - Si tu crois pas à Crôm, prends un gnon
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
-- Nicolas Delsaux ZT> Tout nous vient de Crôm, le crédit comme le débit. Enfin, c'est ce ZT> que je me tue à expliquer à mon banquier, qui est un homme de peu ZT> de foi à la tête fort dure. ZT in frjn - Si tu crois pas à Crôm, prends un gnon
Armel HERVE
In article , says...
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Je ne sais pas ce que tu veux en faire, mais si tous les constructeurs
de ta classe absctraite prennent un paramètre de type B, alors il faudra bien que tes classes dérivées lui en fournissent un.
Je ne sais pas si ca répond à ta question, mais je ne vois pas comment tu pourrais imposer les paremètres des constructeurs des classes dérivées.
Armel
In article <XnF947666D86AFC7nicolasdelsauxalussi@213.228.0.4>,
nicolas.delsaux@alussinan.org says...
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux
mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au
moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette
magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Je ne sais pas ce que tu veux en faire, mais si tous les constructeurs
de ta classe absctraite prennent un paramètre de type B, alors il faudra
bien que tes classes dérivées lui en fournissent un.
Je ne sais pas si ca répond à ta question, mais je ne vois pas comment
tu pourrais imposer les paremètres des constructeurs des classes
dérivées.
Le 19.01 2004, cyril s'est levé et s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java ?"
Bonjour,
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
C'est très curieux, comme question. Quel est l'objectif réel de cette magouille ?
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Je ne sais pas ce que tu veux en faire, mais si tous les constructeurs
de ta classe absctraite prennent un paramètre de type B, alors il faudra bien que tes classes dérivées lui en fournissent un.
Je ne sais pas si ca répond à ta question, mais je ne vois pas comment tu pourrais imposer les paremètres des constructeurs des classes dérivées.
Armel
vclassine
(cyril) wrote in message news:...
Bonjour,
Excusez lka trivialité de ma question mais je me demande si l'on peut forcer les classe dérivées d'une autre (absctraite ici en l'occurence ou implementant une interface) à avoir au moins une signature donnée pour au moins un de ses constructeur.
Pour etre clair :
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Une partie de la réponse:
Déclarer <private> le constructeur par défaut (celui qui n'a pas de paramètre) de ta classe mère pour le masquer. Ainsi toute classe fille devra appeler un de tes constructeurs explicites (en l'occurence avec un objet de type B en argument). Ceci étant dit ça n'oblige a rien pour la signature du constructeur de la classe fille.
Personnelement je ne pense pas que ça soit possible (peut-être, même pas sûr, avec des contôles à base de réfléxion pendant l'éxécution, mais c'est particulièrement dégueulasse...). En tout cas ça n'est probablement pas la meilleur manière de répondre à ton besoin fonctionnel (pas syntaxique), comme Nino je dirais que ça sens le besoin de Fabrique Abstraite...
Bref expliques pourquoi tu en as besoin, on t'expliquera comment t'en passer ;-)
Exemple de masquage du constructeur par défaut et :
abstract class ClasseA { private ClasseA() { //optionnel throw UnsupportedException("Je me suis gourré je voulais pas l'appeler même en interne"); }
public ClasseA(TypeB b) { ... }
//ne pas déclarer d'autre constructeur visible par les enfants de la classe.
}
class ClasseFilleDeA extends ClasseA { //ça passe pas à la compil //public ClasseB() //{ // super(); //ça pète ici //}
//ça c'est nickel :-) public ClasseB(TypeB b) { super(b); }
//c'est là où ça fait mal :-( public ClasseB() { super(new TypeB()); }
}
chico@grumly.info (cyril) wrote in message news:<3123d61c.0401190920.6f079eb4@posting.google.com>...
Bonjour,
Excusez lka trivialité de ma question mais je me demande si l'on peut
forcer les classe dérivées d'une autre (absctraite ici en l'occurence
ou implementant une interface) à avoir au moins une signature donnée
pour au moins un de ses constructeur.
Pour etre clair :
je voudrai forcer toutes les classe dérivant ma classe A a avoir au
moins un constructeur prenant comme parametre un objet de type B
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Une partie de la réponse:
Déclarer <private> le constructeur par défaut (celui qui n'a pas de
paramètre) de ta classe mère pour le masquer. Ainsi toute classe fille
devra appeler un de tes constructeurs explicites (en l'occurence avec
un objet de type B en argument). Ceci étant dit ça n'oblige a rien
pour la signature du constructeur de la classe fille.
Personnelement je ne pense pas que ça soit possible (peut-être, même
pas sûr, avec des contôles à base de réfléxion pendant l'éxécution,
mais c'est particulièrement dégueulasse...). En tout cas ça n'est
probablement pas la meilleur manière de répondre à ton besoin
fonctionnel (pas syntaxique), comme Nino je dirais que ça sens le
besoin de Fabrique Abstraite...
Bref expliques pourquoi tu en as besoin, on t'expliquera comment t'en
passer ;-)
Exemple de masquage du constructeur par défaut et :
abstract class ClasseA
{
private ClasseA()
{
//optionnel
throw UnsupportedException("Je me suis gourré je voulais pas
l'appeler même en interne");
}
public ClasseA(TypeB b)
{
...
}
//ne pas déclarer d'autre constructeur visible par les enfants de
la classe.
}
class ClasseFilleDeA extends ClasseA
{
//ça passe pas à la compil
//public ClasseB()
//{
// super(); //ça pète ici
//}
//ça c'est nickel :-)
public ClasseB(TypeB b)
{
super(b);
}
//c'est là où ça fait mal :-(
public ClasseB()
{
super(new TypeB());
}
Excusez lka trivialité de ma question mais je me demande si l'on peut forcer les classe dérivées d'une autre (absctraite ici en l'occurence ou implementant une interface) à avoir au moins une signature donnée pour au moins un de ses constructeur.
Pour etre clair :
je voudrai forcer toutes les classe dérivant ma classe A a avoir au moins un constructeur prenant comme parametre un objet de type B
Je ne sais pas si cela peut se faire.
Merci pour vos info.
Une partie de la réponse:
Déclarer <private> le constructeur par défaut (celui qui n'a pas de paramètre) de ta classe mère pour le masquer. Ainsi toute classe fille devra appeler un de tes constructeurs explicites (en l'occurence avec un objet de type B en argument). Ceci étant dit ça n'oblige a rien pour la signature du constructeur de la classe fille.
Personnelement je ne pense pas que ça soit possible (peut-être, même pas sûr, avec des contôles à base de réfléxion pendant l'éxécution, mais c'est particulièrement dégueulasse...). En tout cas ça n'est probablement pas la meilleur manière de répondre à ton besoin fonctionnel (pas syntaxique), comme Nino je dirais que ça sens le besoin de Fabrique Abstraite...
Bref expliques pourquoi tu en as besoin, on t'expliquera comment t'en passer ;-)
Exemple de masquage du constructeur par défaut et :
abstract class ClasseA { private ClasseA() { //optionnel throw UnsupportedException("Je me suis gourré je voulais pas l'appeler même en interne"); }
public ClasseA(TypeB b) { ... }
//ne pas déclarer d'autre constructeur visible par les enfants de la classe.
}
class ClasseFilleDeA extends ClasseA { //ça passe pas à la compil //public ClasseB() //{ // super(); //ça pète ici //}
//ça c'est nickel :-) public ClasseB(TypeB b) { super(b); }
//c'est là où ça fait mal :-( public ClasseB() { super(new TypeB()); }