ABSTRACT |
Abstraites |
---|---|
Free Pascal | Objects |
Syntaxe
Procedure Abstract; |
Description
Cette procédure permet de gérer les erreurs abstraites.
Remarques
- Indication d'une méthode abstraite : La fonction Abstract est utilisée dans Free Pascal pour marquer une méthode comme abstraite. Cela signifie que la méthode n'a pas d'implémentation dans la classe de base et doit être implémentée dans les classes dérivées. Elle est donc essentielle pour la définition de classes abstraites, qui ne peuvent pas être instanciées directement.
- Comportement en cas d'appel : Lorsqu'une méthode abstraite est appelée directement dans la classe de base (avant qu'elle ne soit redéfinie dans une classe dérivée), Free Pascal lèvera une exception de type EAbstractError. Cela empêche l'exécution de code non implémenté, forçant ainsi l'utilisateur à fournir une implémentation concrète dans les classes filles.
- Absence d'implémentation : Contrairement à une méthode normale, une méthode marquée comme Abstract ne possède pas de corps de fonction. En l'absence d'implémentation, l'appel de cette méthode dans une instance de la classe abstraite entraîne une erreur, soulignant l'importance de redéfinir cette méthode dans les classes concrètes.
- Contraintes sur l'héritage : Lorsque vous définissez une méthode abstraite, toute classe dérivée doit fournir une implémentation pour cette méthode. Cela garantit que les classes enfants possèdent un comportement complet et cohérent, tout en permettant à la classe parente de définir une interface commune sans imposer une implémentation particulière.
- Utilisation dans les interfaces : Bien que les interfaces n'aient pas de méthodes implémentées, l'utilisation de la fonction Abstract dans une classe permet de simuler un comportement similaire, où les méthodes doivent être redéfinies par les classes dérivées, tout comme avec les interfaces, mais avec plus de flexibilité dans l'implémentation.
- Prévention d'instanciation de la classe de base : En utilisant Abstract, vous assurez que la classe de base ne peut pas être instanciée directement, ce qui renforce l'idée qu'elle est conçue pour être une base pour d'autres classes, et non pour être utilisée seule. Cela permet de mieux structurer l'architecture d'un programme orienté objet.
- Clarté dans la conception d'API : En marquant certaines méthodes comme Abstract, vous fournissez une documentation implicite dans le code. Cela permet à d'autres développeurs de savoir qu'une méthode doit être implémentée, tout en offrant un cadre pour la conception d'API où certaines fonctionnalités doivent obligatoirement être définies par les utilisateurs de la classe.
- Rôle dans les classes polymorphes : Abstract joue un rôle clé dans le polymorphisme. En imposant que les méthodes abstraites soient redéfinies dans les sous-classes, cela garantit qu'un appel à une méthode sur une instance d'une sous-classe appellera la version correcte de la méthode, permettant ainsi un comportement spécifique tout en maintenant l'abstraction.
Exemple
Voici un exemple simple de la procédure Abstract de l'unité Objects de Free Pascal :
Dernière mise à jour : Lundi, le 24 Août 2020