Interface extends another interface but implements its methods

GingerHead picture GingerHead · Apr 19, 2012 · Viewed 120.5k times · Source

In java when an interface extends another interface:

  1. Why does it implement its methods?
  2. How can it implement its methods when an interface can't contain a method body
  3. How can it implement the methods when it extends the other interface and not implement it?
  4. What is the purpose of an interface implementing another interface?

This has major concepts in 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();
}

In eclipse there is the implement sign besides the implemented methods in DragController.

And when I mouse-hover it, it says that it implements the method!!!

Answer

AlexTheo picture AlexTheo · Apr 19, 2012

Why does it implement its methods? How can it implement its methods when an interface can't contain method body? How can it implement the methods when it extends the other interface and not implement it? What is the purpose of an interface implementing another interface?

Interface does not implement the methods of another interface but just extends them. One example where the interface extension is needed is: consider that you have a vehicle interface with two methods moveForward and moveBack but also you need to incorporate the Aircraft which is a vehicle but with some addition methods like moveUp, moveDown so in the end you have:

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

and airplane:

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