Gin*_*ead 43 java extends interface implements
在java中,当一个接口扩展另一个接口时:
这有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();
}
Run Code Online (Sandbox Code Playgroud)
在eclipse中除了实现的方法之外还有实现标志DragController.
当我鼠标悬停它,它说它实现了方法!
Ale*_*heo 66
为什么要实现它的方法?当接口不能包含方法体时,如何实现其方法?如何在扩展其他接口而不实现它时实现这些方法?实现另一个接口的接口的目的是什么?
接口不实现另一个接口的方法,只是扩展它们.在需要的接口扩展的一个例子是:考虑到你有两种方法车辆接口moveForward和moveBack但你也需要把飞机是车辆,但一些另外的方法,如moveUp,moveDown所以最后你有:
public interface IVehicle {
bool moveForward(int x);
bool moveBack(int x);
};
Run Code Online (Sandbox Code Playgroud)
和飞机:
public interface IAirplane extends IVehicle {
bool moveDown(int x);
bool moveUp(int x);
};
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 20
接口定义行为.例如,Vehicle接口可以定义move()方法.
汽车是一种车辆,但有其他行为.例如,Car接口可能会定义startEngine()方法.由于Car也是Vehicle,Car接口扩展了Vehicle接口,因此定义了两种方法:( move()继承)和startEngine().
Car接口没有任何方法实现.如果您创建一个实现Car的类(Volkswagen),它将必须为其接口的所有方法提供实现:move()和startEngine().
接口可能不实现任何其他接口.它只能扩展它.
ad 1.它没有实现其方法.
ad 4. 扩展一个接口而不是另一个接口的目的是构建一个更具体的接口.例如,SortedMap是一个扩展的接口Map.对排序方面不感兴趣的客户端可以编码Map并处理例如TreeMap实现的所有实例SortedMap.同时,对排序方面感兴趣的另一个客户端可以通过该SortedMap接口使用这些相同的实例.
在您的示例中,您将从超级接口重复这些方法.虽然合法,但它是不必要的,并且不会改变最终结果中的任何内容.无论这些方法是否存在,编译后的代码都完全相同.无论Eclipse的悬停说什么都与接口没有实现任何东西的基本事实无关.