【问题标题】:Why do we need interfaces if it only declares the method signature?如果只声明方法签名,为什么我们需要接口?
【发布时间】:2020-07-21 16:43:16
【问题描述】:

接口中声明的所有方法都是抽象的,我们必须在实现接口的类中重写带有签名和主体的方法。那么使用界面有什么意义呢?

【问题讨论】:

  • 这能回答你的问题吗? Interface vs Abstract Class (general OO)
  • @ThisIsNoZaku OP 询问 why 不是什么区别
  • 我们需要接口来声明抽象方法,正如您所说的那样。然后我们在具体类中实现这些方法。这才是重点。这都是关于抽象的概念。或者你在问我们为什么在编程中使用抽象?
  • @awarrier99 我收回了我的旗帜,但评论仍然存在。

标签: java oop interface abstraction


【解决方案1】:

通常,接口被认为是开发人员之间的合同。我的意思是,假设您正在开发一个供公众使用的专有 API。现在您不希望每个人都能够直接看到您的源代码,了解您是如何实现某些东西的,因为那是您的整个产品。相反,您要做的是公开一个接口,该接口向其他开发人员显示预期的参数类型和返回值,并保证您的代码将实现其使用目的,而无需透露其工作原理。

这也允许代码的可扩展性,因为通过允许某个方法接受一个接口,而不是一个特定的实现,您就可以改变或可能改进该实现,只要它仍然实现相同的接口因此遵守相同的保证。

定义一个接口就像说“我希望能够拥有这些我可以调用的函数,它们接受这些参数并返回这些值,但我不在乎你是怎么做的”

【讨论】:

    【解决方案2】:

    接口就像名字所暗示的那样,为某些东西提供接口。因此,假设我想要一个应用程序,它从用户那里获取输入并将其存储在数据库中,然后根据用户的请求从数据库中获取数据以显示。我可以简单地拥有一个接口来声明从数据库存储和获取的方法。所以接受输入和显示数据的用户表单可以使用这些方法。 如果我决定更改数据库,这使我可以灵活地更改实现。而且我不必使用接口中声明的方法更改部分。因为所有的实现都会有这些方法。

    我认为这个文档(https://docs.oracle.com/javase/tutorial/java/concepts/interface.html) 也会有所帮助。

    我想我可以在这里再添加一件事,假设我想使用 facebook(或其他应用程序,如果你喜欢)提供的界面。我可以浏览提供的方法列表,看看哪种方法适合我。它使事情变得比必须通过所有实现细节更简单。这就是我认为@Tarun 在上面的答案中所说的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多