Qu'est-ce que la classe abstraite dans C# ? | Définition, propriétés et exemples

Le terme abstraction dans la programmation fait référence à la dissimulation d'informations inutiles, bien que très importantes, et à rendre visible à l'utilisateur uniquement certaines informations clés ou requises. Ceci est rendu possible grâce à l'utilisation de classes abstraites.

La classe abstraite en C# est essentiellement une classe qui ne permet pas la création d'objets. « Abstrait » ici est un mot-clé ou un modificateur qui rend cette classe ou méthode particulière abstraite ou restreinte. Une classe abstraite n'est accessible que par héritage d'une classe différente.

Propriétés et composants de la classe abstraite dans C#

Certains facteurs doivent être présents pour qu'une classe abstraite soit initiée ou accessible. Ils ont été répertoriés comme suit.

  1. Une classe abstraite est utilisée pour créer une classe de base qui peut être communément accédée par plusieurs classes dérivées. Pour utiliser ou implémenter une classe abstraite, les programmeurs doivent d'abord créer une classe dérivée.
  2. La classe abstraite doit donc être héritée par les sous-classes, qui peuvent même écraser la fonction.
  3. Chaque classe abstraite requiert au moins une méthode abstraite.

Exemple de classe abstraite en C#

Étant donné que le mécanisme est compliqué et compréhensible uniquement par ceux qui connaissent le langage de programmation, il est préférable de commencer par un exemple très simple qui aidera à expliquer le concept.

Supposons qu'il existe une classe 'Tree', avec une méthode conçue existante connue sous le nom de 'type'. Rien d'autre n'est défini et aucune autre information particulière n'est fournie – on ne connaît pas le type d'arbre, ni même les types possibles.

Si un exemple spécifique d'arborescence est disponible, une classe distincte est créée via l'héritage de la classe de base, Tree. L'idée est que la nouvelle classe, disons Pine ou Oak, ne peut pas réellement modifier la construction ou la définition de la classe de base, c'est-à-dire Tree. Il doit créer sa propre classe, dérivée de la classe Tree, et définir une autre méthode héritée de la base.

Avantages de la classe abstraite en C#

  1. Alors que les sous-classes peuvent choisir d'implémenter ou de remplacer une classe abstraite, certaines modifications peuvent être apportées, ce qui nécessite qu'une certaine fonction soit absolument implémentée.
  2. Il y a donc une grande flexibilité lors de la conception d'une classe abstraite, par rapport aux méthodes qu'il faut impérativement implémenter.
  3. Le programmeur peut choisir le nombre de méthodes abstraites qu'il souhaite dans une classe abstraite. Il est également possible d'écrire le code sans inclure de méthodes abstraites.
  4. Une classe abstraite ne doit être définie qu'une seule fois et peut désormais être consultée ou dérivée autant de fois que nécessaire.
  5. Une classe abstraite est très utile lorsqu'il existe un ensemble de classes qui ont un certain degré de similitude mais diffèrent dans leur implémentation de la classe abstraite.

Inconvénients de la classe abstraite en C#

  1. Une classe abstraite ne peut être ajoutée à la hiérarchie des classes que s'il n'existe pas déjà de classes abstraites.
  2. Les objets de toute classe abstraite peuvent uniquement être référencés, jamais créés.
  3. Malgré le fait que les classes abstraites ne peuvent pas être instanciées, cela ne permet pas l'utilisation de variables ou de méthodes statiques.

Références

  1. https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
  2. https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
x
2D vs 3D