Interface étend une autre interface, mais met en œuvre ses méthodes
En java lorsqu'une interface étend une autre interface:
- Pourquoi faut-il mettre en œuvre ses méthodes?
- Comment peut-il mettre en œuvre ses méthodes d'une interface ne peut pas contenir un
corps de la méthode - Comment peut-il mettre en œuvre les méthodes, quand il s'étend sur l'autre interface
et de ne pas la mettre en œuvre? - Quel est le but d'une interface de mise en œuvre d'une autre interface?
Cette évolution a des notions en Java!
EDIT:
public interface FiresDragEvents {
void addDragHandler(DragHandler handler);
void removeDragHandler(DragHandler handler);
}
public interface DragController extends FiresDragEvents {
void addDragHandler(DragHandler handler);
void removeDragHandler(DragHandler handler);
void dragEnd();
void dragMove();
}
Dans eclipse, il y a le mettre en œuvre signe d'ailleurs la mise en œuvre de méthodes de DragController
.
Et quand je souris hover, il dit qu'il implémente la méthode!!!
- lorsque vous étendez une interface vous pouvez seulement y ajouter, c'est pourquoi vous le faites. Les Interfaces ne pas mettre en œuvre des méthodes.
Vous devez vous connecter pour publier un commentaire.
Interface ne permet pas de mettre en œuvre les méthodes d'une autre interface, mais juste les étend.
Un exemple de cas où l'extension de l'interface qui est nécessaire est: pensez-vous que vous avez une interface de véhicule avec deux méthodes
moveForward
etmoveBack
mais aussi vous avez besoin pour intégrer l'Avion, qui est un véhicule mais avec un peu plus de méthodes comme lemoveUp
,moveDown
doncà la fin vous avez:
et avion:
IAirplane
et vous réellement ne sont pas hériter. Un autre point est sur, j'aimerais demander à l'auteur deIVehicle
à comprendre pourquoi cette interfaceIvehicle
n'a pas été conçu pour d'ores et déjà envisagermoveDown()
etmoveBack()
, parce queinterface
est détecté à partir d'un ensemble de classes concrètes(je suis en supposant que l'avion concept est disponible dans le cadre de sa génération). Dans l'ensemble, je me sens, l'extension d'une interface est une conséquence de l'existence de ces mauvaises conception, Parce que nous sommes rompre le but deextends
dans ce scénario.interface in this case is designed before the classes.
En tout cas de tous les logiciels de conception, l'interface est découvert après les classes de béton sont conçus.IVehicle
interface doit avoir toutes sortes de méthode (ie. déplacer vers le haut/vers le bas/arrière/avant) comme à préférer la conception à avoir unIAirplane
interface pour gérer ces cas? Serait des implémentations concrètes de voitures tout simplement laisser ces méthodes non implémentées?interface IVehicle { public function feature_of_IVehicle(); }
etinterface IAirplane { public function feature_of_IAirplane(); }
puisclass AB implements IVehicle, IAirplane { ... }
.Une interface définit le comportement. Par exemple, un
Vehicle
interface peut définir lamove()
méthode.Une Voiture est un Véhicule, mais a un comportement supplémentaire. Par exemple, le
Car
interface peut définir lastartEngine()
méthode. Depuis une Voiture est également un Véhicule, laCar
interface étend laVehicle
de l'interface, et donc définit deux méthodes:move()
(héritée) etstartEngine()
.L'interface de Voiture n'a pas toute la méthode de la mise en œuvre. Si vous créez une classe (Volkswagen) qui implémente la Voiture, il aura à fournir des implémentations pour toutes les méthodes de son interface:
move()
etstartEngine()
.Une interface ne peut pas mettre en œuvre de toute autre interface. Il ne peut l'étendre.
ad 1. Il ne met en œuvre ses méthodes.
ad 4. Le but d'une interface l'extension de, ne pas mettre en œuvre une autre, est de construire une interface spécifique. Par exemple,
SortedMap
est une interface qui étendMap
. Un client n'est pas intéressé par le tri aspect de code contreMap
et de traiter tous les cas de, par exemple,TreeMap
, qui met en œuvreSortedMap
. Dans le même temps, un autre client intéressé par l'triés aspect de l'utilisation de ces mêmes instances à travers leSortedMap
interface.Dans votre exemple, vous êtes en répétant les méthodes de la superinterface. Alors que juridique, il n'est pas nécessaire et ne change rien au résultat final. Le code compilé sera exactement la même si ces méthodes sont là ou pas. Quelle que soit l'Éclipse du survol du dit est indifférent à la vérité fondamentale que une interface ne permet pas de mettre en œuvre tout ce.