请用通俗易懂的语言或文章链接进行解释。


当前回答

实现用于接口,扩展用于扩展类。

为了用更简单的术语使它更清晰,界面就像它的声音——一个界面——一个模型,你需要应用它,跟随它,以及你的想法。

Extend用于类,在这里,您通过添加更多功能来扩展已经存在的内容。

还有一些注意事项:

一个接口可以扩展另一个接口。

当您需要为特定场景在实现接口或扩展类之间进行选择时,就开始实现接口。因为一个类可以实现多个接口,但只能扩展一个类。

其他回答

界面是一个对象可以做的动作的描述…例如,当你拨动一个灯开关,灯亮了,你不在乎怎么做,只是它做了。在面向对象编程中,接口是一个对象为了成为“X”而必须具有的所有功能的描述。同样,作为一个例子,任何“像”灯光的东西都应该有turn_on()方法和turn_off()方法。接口的目的是让计算机强制执行这些财产,并知道TYPE T的对象(无论接口是什么)必须具有名为X、Y、Z等的函数。

接口是一种编程结构/语法,允许计算机在对象(类)上强制执行某些财产。例如,假设我们有汽车类、滑板车类和卡车类。这三个类中的每一个都应该有一个start_engine()操作。每个车辆的“引擎如何启动”取决于每个特定的类,但它们必须有一个start_engine动作这一事实是接口的领域。

extends用于扩展类。

implements用于实现接口

接口和常规类之间的区别在于,在接口中不能实现任何声明的方法。只有“实现”接口的类才能实现方法。C++等价的接口将是一个抽象类(不完全相同,但几乎相同)。

此外,java不支持类的多重继承。这通过使用多个接口来解决。

 public interface ExampleInterface {
    public void doAction();
    public String doThis(int number);
 }

 public class sub implements ExampleInterface {
     public void doAction() {
       //specify what must happen
     }

     public String doThis(int number) {
       //specfiy what must happen
     }
 }

现在扩展类

 public class SuperClass {
    public int getNb() {
         //specify what must happen
        return 1;
     }

     public int getNb2() {
         //specify what must happen
        return 2;
     }
 }

 public class SubClass extends SuperClass {
      //you can override the implementation
      @Override
      public int getNb2() {
        return 3;
     }
 }

在这种情况下

  Subclass s = new SubClass();
  s.getNb(); //returns 1
  s.getNb2(); //returns 3

  SuperClass sup = new SuperClass();
  sup.getNb(); //returns 1
  sup.getNb2(); //returns 2

此外,请注意,实现接口不需要@Override标记,因为原始接口方法中没有任何内容需要重写

我建议您对面向对象编程中的动态绑定、多态性和一般继承进行更多研究

extends用于从基类继承时(即扩展其功能)。

implements用于实现接口时。

这里是一个很好的开始:接口和继承。

实现用于接口,扩展用于扩展类。

为了用更简单的术语使它更清晰,界面就像它的声音——一个界面——一个模型,你需要应用它,跟随它,以及你的想法。

Extend用于类,在这里,您通过添加更多功能来扩展已经存在的内容。

还有一些注意事项:

一个接口可以扩展另一个接口。

当您需要为特定场景在实现接口或扩展类之间进行选择时,就开始实现接口。因为一个类可以实现多个接口,但只能扩展一个类。

这两个关键字与继承直接关联,这是OOP的核心概念。当我们将某个类继承到另一个类时,我们可以使用extends,但当我们要将某些接口继承到我们的类时,不能使用extends时,我们应该使用implements,并且我们可以使用扩展关键字从另一个接口继承接口。