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

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

请用通俗易懂的语言解释或链接到某篇文章。



婷婷同学_
浏览 529回答 3
3回答

慕码人8056858

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我建议你多研究一下面向对象编程中的动态绑定、多态和一般继承

猛跑小猪

我注意到你的个人资料中有一些C+问题。如果你理解多重继承从C+(指继承多个其他类的特性的类),Java不允许这样做,但它有关键字interface,这有点像C+中的纯虚拟类。正如很多人提到的,你extend类(您只能从一个类扩展),而您implement接口-但是您的类可以实现任意多个接口。例如,这些关键字及其使用规则描述了在Java中进行多重继承的可能性(您只能拥有一个超类,但可以实现多个接口)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java