Qu'est-ce qu'une méthode abstraite?
Dans la programmation orientée objet, des sous-programmes appelés «méthodes» sont utilisés pour exécuter des fonctions dans un programme. Ces méthodes consistent en des instructions de programmation qui effectuent une action, définissent des paramètres d'entrée pour personnaliser des actions et peuvent renvoyer ou générer une valeur d'un type d'objet ou de classe. Les méthodes sont les actions effectuées dans un programme à partir d'une certaine classe ou d'un objet, et sont utilisées pour accéder aux données stockées dans un objet et les manipuler. Il existe de nombreuses méthodes différentes et chacune a un usage particulier. Un type spécifique effectué à partir d'une super classe abstraite et hérité par des sous-classes est appelé méthode abstraite.
Généralement, la méthode abstraite effectue peu ou pas d’implémentation dans sa super classe abstraite. Les codes contenus dans ce type de méthode sont considérés comme des codes factices et ne sont pas implémentés eux-mêmes. Cela ne signifie pas que la méthode abstraite spécifique d'une classe abstraite particulière ne soit pas utilisée. Au lieu de cela, la méthode abstraite agit comme un modèle ou un espace réservé pour les sous-classes afin de terminer la mise en œuvre de la méthode.
Les super classes peuvent contenir plusieurs sous-classes et toutes les sous-classes d'une super classe ont certains états et comportements similaires. Les classes abstraites constituent donc un type de classe virtuelle qui présente un héritage virtuel. Cela signifie que toute sous-classe dérivée d'une super classe hérite des restrictions de la super classe dont elle est issue. Par conséquent, les méthodes des sous-classes sont dérivées des méthodes abstraites des super-classes. Lors de la programmation et de l'utilisation de méthodes abstraites, le programmeur doit déclarer la classe abstraite plutôt que virtuelle.
Par exemple, une super classe d’objets graphiques contient les sous-classes «Cercle», «Carré», etc. Ainsi, tous les cercles et carrés ont les mêmes états - orientation, position, couleur de remplissage, couleur de trait - et comportements - moveTo. , redimensionnez, faites pivoter, dessinez - en tant qu '«objets graphiques». Toutes les sous-classes de cette super classe ont les mêmes qualités, mais elles sont implémentées de différentes manières. La méthode abstraite de la super-classe fournit le travail de base sans implémentation, et les sous-classes effectuent l'implémentation réelle en utilisant les mêmes méthodes. Même si chaque sous-classe utilise la même méthode que la classe abstraite, elles définissent de manière unique la manière dont la méthode sera réalisée.
L'utilisation d'une méthode abstraite permet la généralisation au niveau supérieur, ou la super classe, et la spécification au niveau inférieur, ou sous-classes. Cette hiérarchie minimise la quantité de programmation de méthode pour chaque sous-classe spécifique. L'utilisation de ces méthodes permet également l'idempotency des sous-classes, ce qui signifie que si une méthode est implémentée à plusieurs reprises, le résultat est le même à chaque fois.