Overload et override [Résolu]

missNour83 7 Messages postés jeudi 19 mars 2009Date d'inscription 9 avril 2009 Dernière intervention - 9 avril 2009 à 17:07 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 10 avril 2009 à 18:36
Bonjour,
je travaille avec turbo Delphi 2006 en mode console.
je ne sais pas quand et comment utiliser les mots réservés override et overload pour les méthodes.
Est ce que quelqu'un peut m'aider.
Merci d'avance.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 9 avril 2009 à 17:23
3
Merci
override c'est pour surcharger une méthode ancêtre : tu l'utilises quand tu veux initialiser des trucs dans tes classes et compos :

type
TMonType = class (TMonAncetre)
public
constructor Create(AOwner: TComponent); override;
end;

constructor TMonType.Create(AOwner: TComponent);
begin
inherited Create(AOwner); // Toujours le faire !
// Initialiser eventuellement
end;

override permet de compléter la méthode ancètre, en appelant sa méthode avant, puis en faisant nos trucs après (ou le contraire, ça dépend des cas).

overload c'est pour déclarer un même nom de procédure ou fonction, mais avec des paramètres différents. Tu en as un exemple avec la fonction IntToStr : tu as en réalité deux fonctions différentes : une pour les Integer et une pour les Int64. Tu peux voir facilement les fonctions ou procédures avec overload : il suffit d'ouvrir la parenthèse et d'attendre. Si tu vois deux types de paramètres, il y a un overload.
Pour déclarer un overload, tu mets la directive après chacune de tes fonctions concernées.

Voilà ...

Cordialement, Bacterius !

Merci Bacterius 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de Bacterius
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 10 avril 2009 à 18:36
0
Merci
override > passer outre; on peut la qualifiée de surcharge annulative
overload > surcharger; on peut la qualifiée de surcharge cooperative/associative

override permet de surcharger/redefinir des methodes existante dans une classe objet.

overload permet de surcharger une methode en etendant pour une même definition les types accéptés en parametres et/ou retournés.

il est frequent d'overrider le constructeur ou le destructeur d'un objet (create / destroy)
constructor Create; override;
destructor Destroy; override;

OverRide fait partie integrante des concepts POO d'heritage et de polymorphisme des classes objets,
il ne peut jamais etre utiliser en dehors de ce cadre.

il est frequent d'overloader une methode mathematique pour etre applicable avec les types entiers et flottant par exempe.
function Sum(const Ints : array of integer): integer; overload;
begin
   result := A + B+ C;
end;

function Sum(const Flts : array of single): single; overload;
begin
  result := A + B + C;
end;

OverLoad fait partis des moyens mis en oeuvre pour eviter de multiplier les identifiants de fonctions selon les types utilisé. Pourquoi utiliser deux identifiant differents, par exemple SumInt et SumFloat, alors qu'overload nous permet de declarer une methode Sum unique mais declinée pour accepter aussi bien les entiers que les flotants, comme on le trouve en assembleur. Les langages de haut niveaux se veulent plus simple a utiliser et a comprendre que les langages bas niveaux. ceci explique cela.
OverLoad ne fait donc pas partis du concept de POO ou d'heritage. par contre il peut etre intégré au seins du polymorhpisme aussi bien a l'interieur qu'a l'exterieur des classes.
 

Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.