Maison  >  Article  >  Java  >  Quel est le rôle des classes abstraites ?

Quel est le rôle des classes abstraites ?

青灯夜游
青灯夜游original
2020-11-17 15:51:5629106parcourir

Les classes abstraites sont utilisées pour capturer les caractéristiques communes des sous-classes et sont utilisées comme modèles pour créer des sous-classes dans la hiérarchie d'héritage. En réalité, il n'est vraiment pas nécessaire d'écrire certaines méthodes dans la classe parent, car la méthode dans chaque sous-classe sera certainement différente, écrivez-la comme une classe abstraite, de sorte que lorsque vous regardez le code, vous le sachiez ; c'est une méthode abstraite, et vous saurez que cette méthode est dans la sous-classe, elle est implémentée dans la classe, elle a donc un effet rapide.

Quel est le rôle des classes abstraites ?

1. Qu'est-ce qu'une classe abstraite

Dans le concept orienté objet ? , tous les objets sont décrits par des classes, mais à l'inverse, toutes les classes ne sont pas utilisées pour décrire des objets. Si une classe ne contient pas suffisamment d'informations pour décrire un objet spécifique, une telle classe est une classe abstraite.

Sauf que les classes abstraites ne peuvent pas instancier des objets, d'autres fonctions de la classe existent toujours. Les variables membres, les méthodes membres et les constructeurs sont accessibles de la même manière que les classes ordinaires.

Étant donné que les classes abstraites ne peuvent pas instancier des objets, les classes abstraites doivent être héritées avant de pouvoir être utilisées. Pour cette raison, il est généralement décidé lors de la phase de conception de concevoir ou non une classe abstraite.

La classe parent contient des méthodes communes pour les collections de sous-classes, mais comme la classe parent elle-même est abstraite, ces méthodes ne peuvent pas être utilisées.

En Java, les classes abstraites représentent une relation d'héritage. Une classe ne peut hériter que d'une seule classe abstraite, mais une classe peut implémenter plusieurs interfaces.

2. Pourquoi utiliser des classes abstraites ? A quoi servent les classes abstraites ?

Je me demande toujours pourquoi les classes abstraites sont référencées. Les classes ordinaires ne suffisent-elles pas ? Les méthodes définies dans les classes générales peuvent également être remplacées par des sous-classes. Il n'est pas nécessaire de les définir comme abstraites.

En fait, les classes abstraites ne sont pas d'une quelconque utilité. Les classes générales peuvent effectivement répondre aux exigences de l'application. Cependant, en réalité, il existe effectivement certaines méthodes dans les classes parentes qui ne sont pas nécessaires pour écrire, car. les méthodes de chaque sous-classe seront certainement différentes, il n'est donc pas nécessaire de l'écrire dans la classe parent. Bien entendu, vous pouvez également écrire toutes les classes abstraites comme classes non abstraites, mais ce n’est pas nécessaire.

Écrivez-le comme une classe abstraite, de sorte que lorsque d'autres verront votre code, ou que vous verrez le code d'autres personnes, vous ferez attention à la méthode abstraite et sachez que cette méthode est implémentée dans la sous-classe, donc il y a Fonction rapide.

3. La différence entre les classes abstraites et les interfaces

Les classes abstraites

Les classes abstraites sont utilisé pour capturer les caractéristiques communes des sous-classes. Il ne peut pas être instancié et ne peut être utilisé que comme superclasse pour les sous-classes. Les classes abstraites sont des modèles utilisés pour créer des sous-classes dans la hiérarchie d'héritage.

Interface

Une interface est un ensemble de méthodes abstraites. Si une classe implémente une interface, alors elle hérite des méthodes abstraites de cette interface. C'est comme le modèle de contrat, si vous implémentez cette interface, vous devez alors vous assurer que ces méthodes sont utilisées. Une interface n'est qu'un formulaire, elle ne peut rien faire par elle-même.

Comparaison des classes et interfaces abstraites

Quel est le rôle des classes abstraites ?

Quand utiliser les classes et interfaces abstraites

  • Si vous avez des méthodes et souhaitez que certaines d'entre elles aient des implémentations par défaut, utilisez des classes abstraites.
  • Si vous souhaitez implémenter l'héritage multiple, vous devez alors utiliser des interfaces. Étant donné que Java ne prend pas en charge l'héritage multiple, les sous-classes ne peuvent pas hériter de plusieurs classes, mais elles peuvent implémenter plusieurs interfaces. Vous pouvez donc utiliser des interfaces pour le résoudre.
  • Si les fonctionnalités de base changent constamment, vous devez alors utiliser des classes abstraites. Si vous continuez à modifier les fonctionnalités de base et utilisez une interface, vous devrez modifier toutes les classes qui implémentent l'interface.
  • S'il existe une interface et cinq classes d'implémentation, l'exigence actuelle peut être d'ajouter une méthode à l'interface, ce qui nécessitera des modifications des cinq classes d'implémentation, mais l'exigence ne nécessite que de modifier deux des classes d'implémentation. classes, qui peuvent être redéfinies. Une classe abstraite implémente cette interface, ajoute cette méthode dans la classe abstraite, puis les deux autres classes d'implémentation implémentent cette classe abstraite, ou utilise les nouvelles fonctionnalités de Java 8 pour ajouter des méthodes par défaut ou des méthodes statiques dans l'interface.

Pour plus de connaissances liées à la programmation, veuillez visiter : Apprentissage en programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn