接口扩展了另一个接口,但实现了其方法

2022-08-31 20:09:22

在java中,当一个接口扩展另一个接口时:

  1. 它为什么要实现它的方法?
  2. 当接口不能包含方法体时,它如何实现其方法
  3. 当它扩展其他接口而不实现它时,它如何实现这些方法?
  4. 一个接口实现另一个接口的目的是什么?

这在Java中具有主要概念!

编辑:

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

在 eclipse 中,除了 DragController 中已实现的方法之外,还有实现符号。

当我用鼠标悬停它时,它说它实现了该方法!!!


答案 1

它为什么要实现它的方法?当接口不能包含方法体时,它如何实现其方法?当它扩展其他接口而不实现它时,它如何实现这些方法?一个接口实现另一个接口的目的是什么?

接口不实现另一个接口的方法,而只是扩展它们。需要接口扩展的一个例子是:假设您有一个具有两种方法的车辆接口,并且还需要合并飞机,这是一个车辆,但具有一些附加方法,例如,因此最终您有:moveForwardmoveBackmoveUpmoveDown

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

和飞机:

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

答案 2

接口定义行为。例如,接口可以定义方法。Vehiclemove()

汽车是车辆,但有其他行为。例如,接口可以定义方法。由于 Car 也是 Vehicle,因此接口扩展了接口,从而定义了两种方法:(继承)和 。CarstartEngine()CarVehiclemove()startEngine()

Car 接口没有任何方法实现。如果你创建一个实现 Car 的类(大众汽车),它必须为其接口的所有方法提供实现:和 。move()startEngine()

接口不能实现任何其他接口。它只能扩展它。