【问题标题】:How do we achieve abstraction using Interfaces in java? [closed]我们如何在 java 中使用接口实现抽象? [关闭]
【发布时间】:2015-01-20 05:10:28
【问题描述】:

我了解到java中的接口和抽象类帮助我们实现抽象。但是,我并不完全理解这个理论,抽象意味着隐藏内部机制并仅显示相关细节,但是接口和抽象类究竟如何帮助我们。

谁能用现实生活中的例子解释一下。

【问题讨论】:

  • 我相信你在描述encapsulation
  • 一个interface就像一个合同,上面写着“我保证会执行这个行为”,它实际上如何做是无关紧要的......
  • 就像@MadProgrammer 所说,界面不显示某事是如何完成的,而是应该做什么。
  • 但是接口本身并没有做任何事情,如果我们谈论“可序列化”,那么我们实现可序列化,但我们定义了我们的对象将如何被序列化。我不明白界面对我们隐藏了什么。

标签: java


【解决方案1】:

这里的Shape 可能是一个接口。 RectangleTriangle 正在实现类。

可以表述为:

矩形是一种形状。

同样

三角形也是一种形状。

Shape 确实具有基于其尺寸的面积。并且每个形状对于区域的计算可能不同。

这里的抽象是在area() in Shape 接口中。但是area() 的实现在其实现类中有所不同。


以同样的方式,你可以举一个Animal 接口的例子,它可以有CatDog 和许多这样的实现类。


【讨论】:

    【解决方案2】:

    Interfaces 和 abstract 类没有实现,对于抽象,您只向用户显示 Interfaces 和 abstract 类。所以实现细节对用户是隐藏的,用户只能查看定义。

    【讨论】:

      【解决方案3】:

      接口和抽象类都提供抽象,虽然在不同的层次,

      接口提供100%抽象,而抽象类提供部分抽象。

      接口不能有一个具体函数声明,而抽象类可以有一个。
      具体函数是有主体的函数)

      真实世界的例子

      抽象 向最终用户隐藏内部复杂性是抽象。

      例如

      录音机
      100% 抽象INTERFACE 示例)

      1.按PLAY播放,
      2.按STOP停止。
      最终用户无需担心它是如何完成的,只需按下按钮即可完成功能。

      录音机
      部分抽象抽象示例)

      1.你有一个桌面,
      2.你在预加载的 Windows 上做通常的事情。
      3.您开始研究并创建自己的操作系统,或使用您的功能扩展 UNIX 操作系统。
      4.现在你使用相同的桌面,它仍然有抽象,当你通过按下开始按钮启动系统时,你不知道这是如何在内部完成的,但是一旦你的操作系统启动,你运行您编写的功能,这样做,您不仅使用抽象的东西,而且您也知道它是如何完成的。

      编程世界示例#

      抽象

      例如

      API
      100% 抽象INTERFACE 示例)

      1.你得到API的功能,
      2.传递参数,你会得到结果作为返回类型。
      3.但是用户不知道内部在做什么。

      团队负责人提供架构

      100% 抽象INTERFACE 示例)
      1.你得到一个界面,作为程序员你需要做什么。
      2.创建一个类并实现接口。
      3.您实现所有未实现的方法并提供工作原理。
      根据团队负责人的说法,他并不关心功能,但他知道什么功能会做什么。
      (未来主义的方法,一般用于编程)

      程序员制作一个抽象类

      部分抽象抽象示例)
      1.您制作一个抽象类供您使用,
      2.然后你意识到你需要为一些你希望子类可以使用的功能提供一个方法。
      3.您可以直接在具体函数中编写功能。
      程序员就是这样,你知道一些功能,而你不知道其他人会对未实现的功能实现什么。(非具体抽象函数)

      猜你喜欢
      • 1970-01-01
      • 2020-10-20
      • 2021-12-11
      • 2013-01-30
      • 2012-01-20
      • 2019-06-05
      • 2014-08-18
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多