Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Heritage et Constructeur [ Windows / Autre ] (codefalse)

vendredi 25 avril 2008 à 14:48:11 | Heritage et Constructeur

codefalse

Administrateur CodeS-SourceS
Bonjour à tous :)
Voila, nouveau en C# je suis bloqué sur un problème d'héritage.
J'ai une classe mère abstraite, AbsClass, qui contient un constructeur public AbsClass (int val1, int val2, bool val3);
J'ai une classe fille qui étends AbsClass : ChildClass : AbsClass

Je ne met pas de constructeur dans cette classe fille, juste une méthode setValue ();

Quand je compile le tout, j'obtient cette erreur :
"No overload method for method AbsClass takes 0 arguments"

Pour le moment j'ai du implémenter dans mes classes filles le constructeur ChildClass (int val1, int val2, bool val3) : base (val1, val2, val3);
mais j'espere qu'il y a une méthode plus "logique" car j'ai 20 classes filles et j'envisage de modifier le constructeur de la classe abstraite ... :p

Merci de votre aide

[ Lien ]

vendredi 25 avril 2008 à 15:13:34 | Re : Heritage et Constructeur

sebmafate

Membre Club Administrateur CodeS-SourceS
Salut,

le constructeur de la classe fille DOIT surcharger celui dans la classe abstraite.

ex :

public ClassB ( int val1, int val2, int val3 ) : base( val1, val2, val3) {}


Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]

vendredi 25 avril 2008 à 15:22:47 | Re : Heritage et Constructeur

Liverion

Une classe heritant d'une classe abstraite doit : _ soit surcharger toutes les methodes abstraite dont elle herite
                                                                       _ soit etre elle meme abstraite

vendredi 25 avril 2008 à 15:27:22 | Re : Heritage et Constructeur

codefalse

Administrateur CodeS-SourceS
Ne le prenez pas mal mais :
C'est débile !!!!

Je m'explique :
Si je fait une classe abstraite, c'est justement pour éviter la redondance de code dans mes classes filles. Hors déjà rien que là ça prouve le contraire.
De plus, si maintenant j'ai beaucoup de classes filles qui étendent une classe abstraite, et que je désire modifier le constructeur de la classe mere, il va faloir que je fasse les modifs dans TOUTES les classes filles ?!!!!! C'est pas vraiment du principe de la POO ca ? Sur ce coup là, Java marque un point (sans vouloir lancer un troll ;))

En tout cas merci de vos réponses :)

[ Lien ], centre R&D de mes projets :)

vendredi 25 avril 2008 à 15:34:02 | Re : Heritage et Constructeur

sebmafate

Membre Club Administrateur CodeS-SourceS
c'est pourquoi les constructeurs ne doivent pas avoir 50 paramètres...

l'idéale, c'est une méthode static qui te construit une nouvelle instance de ton objet.


Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]

vendredi 25 avril 2008 à 15:55:50 | Re : Heritage et Constructeur

codefalse

Administrateur CodeS-SourceS
Oué je pense que ce sera la seule solution.

C'est quand même bizare de réagir comme ca alors qu'il suffit de remonter sur les classes parent. Je ne comprends vraiment pas microsoft sur ce point !

En tout cas merci pour l'idée, je pense que je vais me tourner vers cette solution ! :)

[ Lien ]

vendredi 25 avril 2008 à 15:58:18 | Re : Heritage et Constructeur

sebmafate

Membre Club Administrateur CodeS-SourceS
je crois que ce n'est pas Microsoft qui fait de travers... c'est un principe de la POO.


Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]

vendredi 25 avril 2008 à 16:07:34 | Re : Heritage et Constructeur

codefalse

Administrateur CodeS-SourceS
En fait c'est pas le cas sous php et je trouvais ca bien plus logique. Puisqu'une classe fille possède les objets public et private de la classe mère, ce qu'il manque dans la classe fille, on va le chercher dans la classe mere, comme un constructeur :p

Le probleme c'est pas que j'ai 50 parametres, c'est juste que si je veux en modifier un, il faut tout modifier. Mais jvais faire ca avec un singleton et des getters/setters et zou :p

Merci de ton aide

[ Lien ]

vendredi 25 avril 2008 à 16:14:59 | Re : Heritage et Constructeur

codefalse

Administrateur CodeS-SourceS
public et protected, pardon ! :)

[ Lien ]

vendredi 25 avril 2008 à 17:43:02 | Re : Heritage et Constructeur

Lutinore

Administrateur CodeS-SourceS

Puisque tu as crée un ctor avec paramêtre le compilo ne crée pas le ctor sans paramêtre, à toi de le définir :


internal abstract class Base
{
    protected int val = -1;

    public Base( )
    {
        // ..
    }

    public Base( int val )
    {
        this.val = val;
    }
}

internal class Derive : Base
{
    public void SetValue( int val )
    {
        this.val = val;
    }
}



1 2

Cette discussion est classé dans : int, classe, constructeur, val1, absclass


Répondre à ce message

Sujets en rapport avec ce message

Instancier une classe par la Reflection: pb de constructeur. [ par bigflo93 ] Bonjour à tous :)Voilà, je fait un programme utilisant la réflection.Je voudrais instancier un objet dynamiquement. Donc je fais:object obj = Activato Pb avec de constructeur de la classe Bitmap [ par frouze ] Salut,Je veux lire le contenu d'un doc RTF pour, entre autre, en extraire les images, équations... et les exporter en gif, jpeg png... J'utilise le co Acces au constructeur hérité. [ par Manu94600 ] Salut à tous,Je voudrais savoir si c'est possible d'appeler un constructeur d'une classe, qui a été héritée, dans le constructeur de la classe héritée Parsing dans un classe générique ??? [ par YOOP ] Bonjour tout le monde,J'ai un soucis concernant une classe générique. (c'est mon premier test avec ce genre de classe).Voici :public class Paramètre   Problème d'héritage [C#] [ par therainbow3 ] Bonjour,J'ai créé une classe Page dont le constructeur est le suivant:public Page(String titre)        {            this.titre = titre;            Arr [c#] overload de classe [ par engelho ] Bonjour,Je dispose de deux classes. la première hérite de la seconde. Mais elle n'as pas de nouvelle variables, et le constructeur est identique (seul Heritage, Image, classe abstraite [ par TeBeCo ] suite à une charmante tentative d'hérité de la classe System.Drawing.Image je me retrouve confronter à un super problème :Aucun constructeur n'est déf creer une calendrier [ par asprog ] salut tout le monde qlq'un peut-il m'aider a creer une calendrier j'ai commencer par creer une classe date a l'interieur de cette classe j'ai creer un constructeur par copie [ par finarfin95 ] Bonjour,J'utilise une classe MaDataRow héritant de DataRow et j'aurais besoin de créer un constructeur par copie d'un objet de type MaDataRow.Le probl utilisation des variables d'une classe [ par ggrug26 ] bonjour a tous,je débute dans le monde du C#, et je rencontre quelques difficultés, mes bases de C++ doivent être rouiller:j'ai créer une classe avec


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.