classe abstraite

Une classe abstraite est une classe déclarée abstraite — elle peut inclure ou non des méthodes abstraites. Les classes abstraites ne peuvent pas être instanciées, mais elles peuvent être sous-classées. Une classe abstraite peut avoir des champs statiques et méthodes statiques. Lorsqu’une classe abstraite est sous-classée, la sous-classe fournit généralement des implémentations pour toutes les méthodes abstraites de sa classe parente. Cependant, si ce n’est pas le cas, la sous-classe doit également être déclarée abstraite.,

une méthode abstraite est une méthode déclarée sans implémentation (sans accolades et suivie d’un point-virgule), comme ceci:

abstract void sum(int a, int b);

envisagez d’utiliser des classes abstraites si l’une de ces instructions s’applique à votre situation:

  1. vous souhaitez partager du code entre plusieurs classes étroitement liées.
  2. vous vous attendez à ce que les classes qui étendent votre classe abstraite aient de nombreuses méthodes ou champs communs ou nécessitent des modificateurs d’accès autres que public (tels que protected et private).
  3. vous souhaitez déclarer des champs non statiques ou non définitifs., Cela vous permet de définir des méthodes qui peuvent accéder et modifier l’état de l’objet auquel elles appartiennent.

Interface

Une interface est juste la déclaration des méthodes d’un objet; ce n’est pas l’implémentation. Dans une interface, nous définissons quel type d’opération un objet peut effectuer. Ces opérations sont définies par les classes qui implémentent l’interface. Les Interfaces forment un contrat entre la classe et le monde extérieur, et ce contrat est appliqué au moment de la construction par le compilateur.,

envisagez d’utiliser des interfaces si l’une de ces instructions s’applique à votre situation:

  1. vous vous attendez à ce que des classes non liées implémentent votre interface. Par exemple, les interfaces comparables et Clonables sont implémentées par de nombreuses classes non liées.
  2. vous souhaitez spécifier le comportement d’un type de données particulier, mais ne vous souciez pas de savoir qui implémente son comportement.
  3. Vous voulez profiter de plusieurs héritages.,

publié à l’Origine en juin 2016

Lecture

  • Lors de (ne Pas) Utiliser Java Classes Abstraites
  • Java: Interface de Vs. Classe abstraite
  • Comment Choisir Entre l’Interface et les Classes Abstraites en Java