小编典典

实现与扩展:何时使用?有什么不同?

all

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


阅读 116

收藏
2022-03-02

共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

另外,请注意,@Override实现接口不需要标签,因为原始接口方法中没有任何内容 可以被覆盖

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

2022-03-02