何时使用扩展和何时使用接口?

pan*_*ajt 2 java design-patterns

我们可以扩展一个类,但是我们不能实现一个类.我们可以实现一个接口,但不能扩展接口.

在什么情况下我们应该使用扩展?

Joe*_*oey 5

extends用于扩展基类:

class ClassX extends ClassY {
    ...
}
Run Code Online (Sandbox Code Playgroud)

扩展接口:

interface InterfaceA extends InterfaceB {
    ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,接口无法实现其他接口(很可能是因为它们没有实现).

Java不强加的类对接口的任何命名约定(相比之下,IFoo在.NET世界的接口),而是使用之间的区别extends,并implements以表示差的程序员:

class ClassA extends ClassB implements InterfaceC, InterfaceD {
    ...
}
Run Code Online (Sandbox Code Playgroud)

在这里,您可以清楚地看到您正在构建现有实现,ClassB并且还可以从两个接口实现这些方法.