usuario tutorial interfaz grafica español ejemplos componentes java interface extends implements

interfaz - java swing tutorial pdf español



La interfaz extiende otra interfaz pero implementa sus métodos. (3)

En java cuando una interfaz extiende otra interfaz:

  1. ¿Por qué implementa sus métodos?
  2. ¿Cómo puede implementar sus métodos cuando una interfaz no puede contener un cuerpo de método?
  3. ¿Cómo puede implementar los métodos cuando extiende la otra interfaz y no la implementa?
  4. ¿Cuál es el propósito de una interfaz implementando otra interfaz?

¡Esto tiene conceptos importantes en Java!

EDITAR:

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(); }

En eclipse hay un signo de implementación además de los métodos implementados en DragController .

¡Y cuando lo muevo con el mouse, dice que implementa el método!


¿Por qué implementa sus métodos? ¿Cómo puede implementar sus métodos cuando una interfaz no puede contener el cuerpo del método? ¿Cómo puede implementar los métodos cuando extiende la otra interfaz y no la implementa? ¿Cuál es el propósito de una interfaz implementando otra interfaz?

La interfaz no implementa los métodos de otra interfaz, solo los amplía. Un ejemplo donde se necesita la extensión de la interfaz es: considere que tiene una interfaz de vehículo con dos métodos moveForward y moveForward pero también necesita incorporar la aeronave que es un vehículo pero con algunos métodos de adición como moveUp , moveDown , así que al final tiene :

public interface IVehicle { bool moveForward(int x); bool moveBack(int x); };

y avion

public interface IAirplane extends IVehicle { bool moveDown(int x); bool moveUp(int x); };


Una interfaz define el comportamiento. Por ejemplo, una interfaz de Vehicle podría definir el método move() .

Un automóvil es un vehículo, pero tiene un comportamiento adicional. Por ejemplo, la interfaz Car podría definir el método startEngine() . Dado que un Coche también es un Vehículo, la interfaz del Car extiende la interfaz del Vehicle , y por lo tanto define dos métodos: move() (heredado) y startEngine() .

La interfaz Car no tiene ningún método de implementación. Si creas una clase (Volkswagen) que implementa Car, tendrá que proporcionar implementaciones para todos los métodos de su interfaz: move() y startEngine() .

Una interfaz no puede implementar ninguna otra interfaz. Sólo se puede extender.


ad 1. No implementa sus métodos.

ad 4. El propósito de una interfaz que se extiende , no la implementación de otra, es construir una interfaz más específica. Por ejemplo, SortedMap es una interfaz que extiende Map . Un cliente que no esté interesado en el aspecto de clasificación puede codificar contra Map y manejar todas las instancias de, por ejemplo, TreeMap , que implementa SortedMap . Al mismo tiempo, otro cliente interesado en el aspecto ordenado puede usar esas mismas instancias a través de la interfaz SortedMap .

En tu ejemplo, estás repitiendo los métodos de la superinterfaz. Si bien es legal, es innecesario y no cambia nada en el resultado final. El código compilado será exactamente el mismo si estos métodos están ahí o no. Sea lo que sea lo que diga el hover de Eclipse, es irrelevante para la verdad básica de que una interfaz no implementa nada .