Quelle est la différence entre les classes abstraites et les interfaces en Java ? Cet article vous présentera la différence entre les classes abstraites et les interfaces. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
En Java, les classes abstraites et les interfaces sont toutes deux utilisées pour réaliser l'abstraction, alors quelles sont les différences entre elles ? Avant de discuter de la différence entre les classes abstraites et les interfaces, examinons d'abord les caractéristiques des classes abstraites et des interfaces. [Tutoriels vidéo associés recommandés : Tutoriel Java]
Classe abstraite
La classe abstraite est utilisée pour capturer les caractéristiques universelles des sous-classes , c'est-à-dire des choses qui ont quelque chose en commun ; par exemple : les voitures, les vélos et les scooters électriques, ce sont tous des voitures et peuvent avoir une classe abstraite commune : Véhicule. Les classes abstraites ne peuvent pas être instanciées, ne peuvent pas être utilisées pour créer des objets et ne peuvent être utilisées que comme superclasses pour les sous-classes.
Interface
Une interface est un ensemble de méthodes abstraites. Si une classe implémente une interface, alors elle hérite de toutes les méthodes abstraites de cette interface.
Remarque : Une méthode abstraite est une méthode spéciale qui n'a que des déclarations mais aucune implémentation spécifique.
L'interface n'est qu'un formulaire, elle ne peut rien faire par elle-même ; si vous souhaitez implémenter une interface, vous devez vous assurer d'implémenter toutes les méthodes dans cette interface.
La différence entre les classes abstraites et les interfaces :
1. Une classe abstraite peut avoir à la fois des méthodes abstraites et concrètes ; n'avoir que des méthodes abstraites Méthode, qui est une collection de méthodes abstraites (à partir de Java 8, elle peut également avoir des méthodes par défaut et statiques).
2. Les classes abstraites ne prennent pas en charge l'héritage multiple. Une seule classe ou une classe abstraite peut être étendue à la fois. Les interfaces prennent en charge l'héritage multiple et n'importe quel nombre d'interfaces peuvent être étendues à la fois.
3. Les classes abstraites peuvent avoir des variables finales, non finales, statiques et non statiques. Les interfaces n'ont que des variables statiques et finales.
4. Une classe abstraite peut étendre une autre classe concrète (régulière) ou classe abstraite et implémenter une interface Java (une ou plusieurs). Une interface ne peut qu'étendre une autre interface Java et les interfaces ne peuvent pas implémenter de classes abstraites.
5. Dans une classe abstraite, le mot-clé : "abstract" est requis pour déclarer une méthode comme abstraite. Dans l'interface, le mot-clé : "abstract" est facultatif et sert à déclarer la méthode comme abstraite
7. Vous pouvez utiliser le mot-clé "extends" pour étendre la classe abstraite. Une classe d'interface peut être implémentée à l'aide du mot-clé "impléments".
8. Les classes abstraites Java peuvent avoir des méthodes abstraites protégées et publiques, et peuvent avoir des membres de classe, tels que privés, protégés, etc. Par défaut, les membres d'une interface Java sont publics et une interface ne peut avoir que des méthodes abstraites publiques.
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
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!