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


当前回答

延伸

类只扩展一个类接口扩展了一个或多个接口

工具

类实现一个或多个接口接口“不能”实现任何内容

抽象类也像类一样,具有扩展和实现

其他回答

A延伸B:A和B都是类或都是接口A机具BA是类,B是接口剩下的A是接口而B是类的情况在Java中是不合法的。

在Java语言中创建自己的新类时使用这两个关键字。

区别:implements意味着您在类中使用Java接口的元素。extends表示您正在创建正在扩展的基类的子类。您只能在子类中扩展一个类,但可以实现任意数量的接口。

有关详细信息,请参阅界面上的oracle文档页面。

这有助于澄清什么是接口,以及使用它们的约定。

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标记,因为原始接口方法中没有任何内容需要重写

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

在Java中,类(子类)扩展了另一个类(超级类),并可以覆盖超级类中定义的方法。

当一个类试图声明接口中定义的方法时,使用implements。

最简单的说法是,extends用于从类继承,implements用于在类中应用接口

延伸:

public class Bicycle {
    //properties and methods
}
public class MountainBike extends Bicycle {
    //new properties and methods
}

机具:

public interface Relatable {
    //stuff you want to put
}
public class RectanglePlus implements Relatable {
    //your class code
}

如果您仍然感到困惑,请阅读以下内容:https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.htmlhttps://docs.oracle.com/javase/tutorial/java/IandI/usinginterface.html