770 Shares 5769 views

Les éléments du modèle objet Java: une classe abstraite, une interface

L'idée principale de la classe abstraite est contenue dans les thèses suivantes: nécessite parfois pas de cours de cuisine, et sous forme « humide ». Ces blancs ne peuvent pas être utilisés directement (instancier).

Qu'est-ce qu'une classe abstraite en Java

Prenons un autre exemple. Il y a une classe abstraite Calendrier Java dans le package java.util. Il ne met pas en œuvre un calendrier spécifique, qui est utilisé, par exemple, dans l'Ouest et Europe de l'Est, la Chine, la Corée du Nord, la Thaïlande et ainsi de suite D. Mais il ne possède de nombreuses fonctionnalités utiles, telles que l'ajout de quelques jours à une date précise. Ces fonctions sont nécessaires pour tout calendrier de mise en œuvre. Il est impossible de produire une copie de la classe abstraite.

Les classes abstraites, les méthodes Java abstraites

Supposons que vous souhaitez développer plusieurs éléments graphiques, par exemple, des formes géométriques: .. Un cercle, rectangle, étoile, etc. Et il y a un récipient qui les attire. Chaque composant de l'apparence est différente, donc la méthode appropriée (même si elle est appelée peinture) est mis en œuvre différemment. Cependant, chaque composante a de nombreuses similitudes: .. Le chiffre devrait être inclus dans la boîte peut avoir une couleur pour être visible et invisible, etc. En d'autres termes, vous devez créer une classe parente pour tous ces chiffres, où chaque composant héritera des propriétés générales. Mais qu'en est-la méthode de peinture? Après tout, la classe parente est pas de représentation visuelle. Si vous déclarez une méthode de peinture dans chaque classe indépendamment, il sera nécessaire d'analyser ce que le composant est traité, puis effectuer la distribution. Par conséquent, la méthode doit être déclarée abstraite dans la classe parente: la méthode définir le titre sans corps. Un corps de chaque classe dérivée décrira son propre. En Java, une classe abstraite peut entrer dans les méthodes abstraites.

Si une classe possède des méthodes abstraites, la classe est abstraite. Avant la classe de mot mis l'abstrait mot-clé, le titre de la méthode – aussi. Après le titre d'une telle méthode est nécessaire pour mettre un point-virgule. En Java, une classe abstraite ne peut pas produire des copies. Si nous voulons interdire leur création, même s'il n'y a pas de méthodes abstraites de la classe, la classe peut être déclarée abstraite. Mais si la classe a au moins une méthode abstraite, la classe doit être abstraite. Il est impossible de classe était abstraite et est, et dernier, et la méthode aussi. La méthode ne peut pas être abstraite, privée, statique, natif. Sous-classe on pourrait déclarer non abstraite et instancier, ils doivent mettre en œuvre toutes les méthodes abstraites de la société mère. La classe elle-même peut utiliser ses méthodes abstraites.

exemple:

  • Classe abstraite AClass {
  • méthode abstraite public void (int a) ;
  • }
  • étend la classe BClass AClass {
  • Procédé public void (int a) {
  • // corps
  • }

variables acceptées telles que la classe abstraite. Ils peuvent se référer à un enfant non abstraite de cette catégorie ou être nulle.

Interfaces Java – une alternative à l'héritage multiple

En Java, il n'y a pas d'héritage multiple, parce qu'alors il y a certains problèmes. Une classe ne peut hériter de plusieurs classes. Mais il peut implémenter plusieurs interfaces.

interfaces Java et des classes abstraites – les concepts sont similaires, mais pas identiques. L'interface peut être déclarée comme public, il est accessible à tous, ou vous pouvez omettre le public de modification, l'interface est disponible uniquement dans son emballage. mot-clé Résumé n'est pas nécessaire, car l'interface et est donc abstraite, mais vous pouvez spécifier.

Une déclaration d'interface

Il commence par un en-tête, et peut aller d'abord au public mot-clé, puis – mot interface. Ensuite, il peut y avoir un mot et étend les interfaces de transfert, dont hérita de ce. Il est interdit de répéter, et il est impossible de former un rapport cyclique de la relation d'héritage. Puis vient le corps d'interface, entre accolades. Dans le corps des éléments d'interface sont déclarées: les constantes de champ et méthodes abstraites. Tous les champs sont public final statique – tous ces modificateurs ne sont pas nécessaires. Toutes les méthodes sont considérées comme abstraites publique – ces modificateurs peuvent également être spécifiés. Maintenant, suffisamment d'importance à la différence entre une classe abstraite de l'interface Java.

  • interface publique AI prolonge B, C, D {
  • // corps
  • }

Pour déclarer un héritier d'interface de classe, besoin d'utiliser le mot-clé met en œuvre:

  • classe AClass implémente BI, CI, DI {}

Autrement dit, si après la déclaration de classe implémente le nom de l'interface spécifiée, ses instruments de classe. Héritiers de cette classe obtient ses éléments, ils vendent aussi.

Les variables d'un type d'interface est également autorisée. Ils peuvent se référer à un type de la classe qui implémente cette interface, ou nulle. Ces variables ont tous les éléments de la classe d'objets, car les objets sont générés par les classes, et, à leur tour, dérivent de la classe d'objets.

Dans cet article, nous avons discuté de certains éléments du modèle objet Java – classes abstraites, interface méthodes abstraites.