Problème d'héritage

Résolu
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour,

Je coince un peu dans mes déclarations.
J'ai un objet générique dont dérive mes classe :
Cette classe implémente l'interface IXmlSerializable

public abstract class GenericObject : IXmlSerializable
{
// Il faut donc que j'implémente les méthode d'IXmlSerializable
// Dans mon exemple on en prendra qu'une seule
  public ???? void ReadXml(XmlReader reader)
  {
  }
}

public classe monObjetDerive : GenericObject
{
  public ???? void ReadXml(XmlReader reader)

  {

  }
}

Ma question est simple, je ne vois pas ce que je peux mettre à la place des ????
j'ai essayé abstract, override, voire rien mais j'ai des erreurs de compile (ou warning).
J'ai une solution, c'est de ne rien mettre dans la classe générique et de mettre 'new' dans les classes dérivées, mais est-ce "propre" ?
Dois-je implémenter l'interface IXmlSerializable à chacune de mes classes et non pas à la classe générique ?

Merci

4 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Salut, si tu veux en faire des méthodes virtuelles il faut les qualifiées de virtual dans la classe de base et override dans la classe derivée.
Messages postés
143
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 octobre 2006

Dans la classe qui implémente l'interface tu doit implémenter tous les membres de l'interface.
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Merci Lutinore, je vais aller faire un tour sur le Net pour savoir la différence entre abstract et virtual.

Un petit débutant en POO
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Les methodes abstract sont virtuelles mais elles sont vides.