Pourquoi avons-nous besoin d'interfaces en Java?
En Java pour mettre en oeuvre l'héritage multiple, nous utilisons des interfaces. Est-ce la seule utilisation des interfaces? Si oui, quelle est la principale utilisation de l'interface en Java? Pourquoi avons-nous besoin d'interfaces en Java?
- double possible de Pourquoi nous mettons en Œuvre des Interfaces ?
- Aussi une bonne explication ici.
Vous devez vous connecter pour publier un commentaire.
Je dirais que la principale utilisation est le polymorphisme, ou la capacité d'effectuer la même opération sur un certain nombre de différents objets. Si les différents objets implémentent la même interface et la même méthode, vous pouvez stocker tous ces objets dans un Vecteur, par exemple, et parcourir le Vecteur d'appeler cette méthode sur chacun d'eux.
Je pensais aussi à la façon dont les interfaces sont utilisées. J'espère que cela aidera d'autres:
à partir de: http://www.ntu.edu.sg/home/ehchua/programming/java/J3b_OOPInheritancePolymorphism.html#zz-6.6
interface Comparable
capturés dans votre réponse?En plus de ces réponses, je dirais que l'utilisation la plus importante pour les interfaces est de réduire le couplage entre les composants de votre logiciel.
Une interface permet de représenter un accord entre les classes sur la façon dont ils vont parler les uns aux autres sans être liée à la réelle mise en œuvre.
Ceci nous permet de remplacer les implémentations par d'autres (très utile pour les tests, ou l'évolution des cas d'utilisation) sans changer le code compilé.
Vous en avez besoin afin que vous pouvez taper vos objets en dehors de la hiérarchie.
Par exemple, les objets qui peuvent être comparées peut être à peu près n'importe où sur la hiérarchie de l'objet - ils n'ont pas besoin d'avoir un ancêtre commun qui peut être comparé.
String
s peut être comparé,Integer
s peut être comparé, vous pouvez même faire votre propreFrame
s qui pourrait lui être comparé, (disons, une image est "moins" qu'une autre image si elle est plus au premier plan - c'est à dire si il serait superposition de l'image). Donc, si vous voulez faire référence à une chose qui peut être comparé, vous serez forcé de déclarer une variable avec le plus grand ancêtre - dans ce cas,Object
. C'est trop général, car alors il peut aussi recevoir des valeurs qui ne sont pas comparables (et de jeter des erreurs lorsque vous essayez de les comparer).Ainsi, l'interface
Comparable
: il sélectionne toutes les classes qui implémentent la fonctionnalité de comparaison à travers la sous-classe de super-classe de la hiérarchie.Code ne compile pas sans elle.
Par exemple, dans:
list
doit mettre en œuvre lesjava.lang.Iterable interface
.