为了账号安全,请及时绑定邮箱和手机立即绑定

实现VS扩展:何时使用?有什么关系呢?

实现VS扩展:何时使用?有什么关系呢?

婷婷同学_ 2019-07-17 19:07:38
实现VS扩展:何时使用?有什么关系呢?请用通俗易懂的语言解释或链接到某篇文章。
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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

我建议你多研究一下面向对象编程中的动态绑定、多态和一般继承


查看完整回答
反对 回复 2019-07-17
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我注意到你的个人资料中有一些C+问题。如果你理解多重继承从C+(指继承多个其他类的特性的类),Java不允许这样做,但它有关键字interface,这有点像C+中的纯虚拟类。正如很多人提到的,你extend类(您只能从一个类扩展),而您implement接口-但是您的类可以实现任意多个接口。

例如,这些关键字及其使用规则描述了在Java中进行多重继承的可能性(您只能拥有一个超类,但可以实现多个接口)。


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 537 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信