furax13
Messages postés90Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention24 avril 2008
-
11 août 2006 à 10:08
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
7 sept. 2006 à 17:58
j'utilise une classe abtraite TclassA qui contient un certains nombres d'attributs.
Je définis n classe de type TclassB qui héritent de TclassA.
J'aimerai signaler que toutes les classes de type TclassB doivent obligatoirement avoir une méthode toto.
J'ai donc défini une procédure toto de type virtual et abstract dans la classA.
A la compilation, si je ne déclare pas procedure toto dans la classB, le compilateur ne dit rien.
Est-ce que ma façon de faire est juste?
Merci
type
TClassA = class abstract(Tobject)
public
procedure toto(); virtual; abstract;
end;
TCLassB = class(TclassA)
public
procedure toto(); override;
end;
furax13
Messages postés90Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention24 avril 2008 7 sept. 2006 à 09:54
si j'enlève le mot-clé abstract à ma classe TclassA et que j'oublie de déclarer la procédure toto dans la classeB, la compilation se déroule sans problème.
J'aimerais que lors de la compilation avoir une erreur me signalant que la classeB doit possèder la procédure toto.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 7 sept. 2006 à 17:58
"J'aimerais que lors de la compilation avoir une erreur me signalant que la classeB doit possèder la procédure toto."
Je proteste !
La classe B possède bien la méthode toto. Mais elle ne l'implémente pas, nuance...
Pourquoi le compilateur renverrait-il une erreur alors les principes de la POO sont respectés ?
En effet, rien n'oblige à implémenter une méthode dans le premier descendant d'une classe. C'est surtout une question de discipline dans l'écriture d'une hiérarchie de classes qui nous pousse à implémenter dès le premier niveau.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.