Voici le problème posé :

J'ai deux classes Derived dérive de Derived1 qui dérive de Base.
.
Dans ma classe de base, j'ai une procedure qui s'appelle MaMethode, elle est déclarée comme étant classe virtuelle, dans ma classe dérivée, elle le même.

Si j'ai choisi qu'elle porte le même nom, c'est parce qu'elles font la même chose à ceci près que celle qui se trouve dans ma classe dérivée accepte un paramètre supplémentaire ou différent (Polymorphisme).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
type
    Base = class
      procedure MaMethode(Parametre:integer); virtual;
    end;
 
    Derived1 = class (Base)
      procedure MaMethode(Parametre:integer;Parametre2:string); Overload;
    end;
A priori, d'après les avertissements de Delphi à la compilation, Il me dit que ma méthode virtuelle de ma classe de base est cachée par ma classe dérivée. Mais je ne veux pas, car je voudrais pouvoir dériver ma classe Derived1 afin de retrouver ma méthode d'origine, comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Derived2 = class (Derived1)
      procedure MaMethode(Parametre:integer); Override; 
    end;
Sans perdre ma méthode déclarée dans Derived1 !!!

A l'arrivée, ce que je voudrais, c'est me retrouver comme si j'ais écris ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Derived2 = class
      procedure MaMethode(Parametre:integer); Override; overload;
      procedure MaMethode(Parametre:integer;Parametre2:string); overload;
    end;
Ou met-je donc les override, overload, virtual et autre reintroduce ?
Please Help...