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.
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
Quand utiliser les classes et interfaces abstraites
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!