一尘不染

Java Implements vs extends:何时使用?有什么不同?

java

请以一种易于理解的语言或一些文章的链接进行解释。


阅读 477

收藏
2020-03-05

共1个答案

一尘不染

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

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

2020-03-05