请用通俗易懂的语言或文章链接进行解释。
当前回答
扩展:用于将父类的属性获取到子类中,并且可能包含已定义的方法,这些方法可以在子类中重写。
Implements:这用于通过在子类中定义接口来实现接口(仅具有函数签名而不具有函数定义的父类)。
有一个特殊的条件:“如果我希望一个新接口成为现有接口的子接口怎么办?”。在上述条件下,子接口扩展父接口。
其他回答
类和接口都是契约。它们提供应用程序其他部分所依赖的方法和财产。
当您对本合同的实现细节不感兴趣时,可以定义一个接口。唯一需要关心的是契约(接口)是否存在。
在这种情况下,您可以让实现接口的类来关注合同如何履行的细节。只有类才能实现接口。
extends用于替换现有合同的详细信息。通过这种方式,您可以用不同的方式取代一种履行合同的方式。类可以扩展其他类,接口可以扩展其他接口。
当子类扩展一个类时,它允许子类继承(重用)和重写在父类型中定义的代码。当类实现接口时,它允许在任何期望接口值的上下文中使用从该类创建的对象。
这里真正的问题是,当我们实现任何东西时,这仅仅意味着我们在使用这些方法。它们的值和返回类型没有任何变化的余地。
但是当我们扩展任何东西时,它就变成了类的扩展。您可以更改它,使用它,重用它,它不一定需要返回与在超类中相同的值。
类只能“实现”接口。类只“扩展”类。同样,一个接口可以扩展另一个接口。
一个类只能扩展另一个类。一个类可以实现几个接口。
相反,如果您更想知道何时使用抽象类和接口,请参考以下线程:接口与抽象类(通用OO)
在Java语言中创建自己的新类时使用这两个关键字。
区别:implements意味着您在类中使用Java接口的元素。extends表示您正在创建正在扩展的基类的子类。您只能在子类中扩展一个类,但可以实现任意数量的接口。
有关详细信息,请参阅界面上的oracle文档页面。
这有助于澄清什么是接口,以及使用它们的约定。
A延伸B:A和B都是类或都是接口A机具BA是类,B是接口剩下的A是接口而B是类的情况在Java中是不合法的。
推荐文章
- Java整数到字节数组
- 如何设置Windows环境下Java的环境变量
- Java Swing revalidate() vs repaint()
- Java中文件中的行数
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- 对于一个布尔字段,它的getter/setter的命名约定是什么?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- super()失败,错误:TypeError "参数1必须是类型,而不是classobj"当父不继承对象
- 如何计算一个元素在列表中出现的次数
- c++中类似于java的instanceof
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?
- 如何POST表单数据与Spring RestTemplate?
- Mockito中检测到未完成的存根
- 我应该如何复制字符串在Java?