Java fournit plusieurs façons de fournir une abstraction de données, comme les interfaces Java et les classes abstraites de Java. L'interface et la classe abstraite assurent la sécurité en cachant les détails de l'implémentation interne et en affichant / ne mettant en évidence les détails nécessaires. Cependant, il existe de nombreuses similitudes et distinctions entre les classes abstraites et les interfaces.
Ce message vous aidera dans les aspects ci-dessous des interfaces Java et des cours abstraits:
Alors, commençons!
Qu'est-ce qu'une interface Java
Il s'agit d'un modèle pour une classe qui contient des méthodes abstraites et des variables statiques / finales. En Java, les interfaces ne fournissent que la déclaration de méthode, tandis que les classes enfants / implémentées fournissent la définition de la méthode.
Qu'est-ce qu'une classe abstraite Java
Toute classe Java qui a au moins une méthode abstraite (seule déclaration de méthode) est connue comme une classe abstraite en Java.
Comparaison basée sur des similitudes
Certains aspects importants des interfaces Java et des classes abstraits sont répertoriés ci-dessous:
Java Abstract Class vs Java Interface
Les mots clés «abstraits» et «interface» sont utilisés en Java pour créer / déclarer les classes abstraites et les interfaces respectivement.
Dans les interfaces, tous les membres sont considérés comme publics par défaut, il n'est donc pas nécessaire de spécifier le modificateur d'accès pour les membres des interfaces. Alors que dans les classes abstraites, il n'y a pas de restriction de ce type et donc un modificateur d'accès peut être utilisé pour les membres de classes abstraites telles que le public, la protection, etc.
La syntaxe de base d'une classe abstraite et d'une interface est indiquée dans les extraits divisés:
Classe abstraite
Classe abstraite publique classnameInterface
interface publique interfacenameLes interfaces doivent avoir toutes les méthodes abstraites, tandis que les classes abstraites peuvent avoir des méthodes abstraites et non abstraites.
L'interface ne peut avoir que des membres statiques, tandis que les classes abstraites peuvent avoir des membres statiques et non statiques.
Les interfaces n'ont que des membres «finaux» (inchangeables) tandis que les classes abstraites peuvent avoir des membres finaux et non finaux.
Les interfaces n'ont aucun constructeur tandis que les classes abstraites ont des constructeurs définis par l'utilisateur ou par défaut.
L'héritage multiple peut être réalisé à l'aide d'interfaces tandis que les classes abstraites ne prennent pas en charge l'héritage multiple.
En Java, la classe abstraite peut hériter d'une autre classe et peut implémenter de nombreuses interfaces, en revanche, une interface Java peut prolonger une autre interface uniquement.
Exemple
L'exemple donné ci-dessous vous permettra de comprendre comment les interfaces et les classes abstraites fonctionnent en Java:
interface firstInterfaceDans cet exemple, nous avons créé une interface «FirstInterface», une classe abstraite «AbstractClass», et deux autres classes Java normales et effectué les fonctionnalités suivantes:
Le Interfacexample est la classe principale d'où nous avons créé la méthode principale et invoqué toutes les méthodes de FirstInterface:
La sortie a vérifié le fonctionnement du programme Java donné ci-dessus.
Conclusion
En Java, l'abstraction peut être obtenue en utilisant des classes abstraites et des interfaces, et les deux ne peuvent pas être instanciées. Cependant, il existe plusieurs distinctions entre les classes abstraites et les interfaces. Par exemple, les interfaces doivent avoir toutes les méthodes abstraites tandis que les classes abstraites peuvent avoir des méthodes abstraites et non abstraites; À l'aide d'interfaces, l'héritage multiple peut être réalisé tandis que les classes abstraites ne prennent pas en charge l'héritage multiple, etc. Ce message a expliqué divers aspects des classes abstraites et des interfaces à l'aide d'exemples appropriés.