隐藏在抽象中的东西是什么?

时间:2016-06-17 17:45:28

标签: java

大多数人都说抽象是隐藏某些东西并且只向用户显示功能。任何人都可以解释一下你隐藏的所有东西是什么以及你展示的所有东西是什么?请不要用动物,引擎,车辆的例子来解释。

2 个答案:

答案 0 :(得分:1)

我认为这是一个具体例子可以帮助很多的情况。

HashMap有一个处理哈希冲突的内部结构,它是单链表的实现。现在,你知道内部结构如何工作,它叫什么,它的字段叫什么,等等?更重要的是,只要HashMap“正常”,你 care 吗?

如果对这两者的答案都是“不” - 除了好奇心/学习目的之外的任何东西应该是什么 - 那么这些细节已经隐藏起来并通过Map的界面抽象而暴露出来。

结果是一个更易于推理的课程(因为你学的东西较少),并且图书馆维护人员更容易维护(因为他们不需要担心他们会破坏你的代码所做的改变,只要他们仍然遵守界面)。

答案 1 :(得分:0)

抽象是一个超载的术语。

面向对象语言中的抽象基本上意味着在对现实世界对象进行建模时会留下不必要的细节。您也可以将其视为一个简化过程。

抽象,在计算机科学中作为一个整体,也意味着通过提供某种更简单的界面来隐藏复杂性。您的问题似乎是针对“数据抽象”,这意味着隐藏数据用抽象层表示的确切方式。这可以是例如数据库中的Number数据类型。你只知道它是一个数字,但不知道它是如何存储在磁盘上的。

抽象有时也用于封装。