抽象中的功能和实现细节有什么区别?

8 java oop abstraction

我正在学习OOP和Java,而Abstraction的定义是将实现细节隐藏起来的过程,只有功能才会提供给用户.

有人可以解释一下功能和实现细节之间的区别是什么?

Fak*_*sul 11

现实世界的例子:想象一下齿轮箱,用户只能改变齿轮,这就是功能.

变速箱背后的机制以及齿轮箱如何在内部工作是实施,并且实施对用户是隐藏的.


Gho*_*ica 5

一个很好的例子是Java List接口.

这提供了向列表中动态添加或删除元素的方法.这就是功能.真正发生的事情并没有在那个接口中表达,对于那个List接口的用户来说,它也没关系(太多).

例如,实现可能是一个双向链表,您只需更改列表中对象之间的"链接",或者如果使用需要相应增长/缩小的数组,则由实现决定当然)当然,不同的实现选项有实际的利弊,但在许多情况下,您可能决定不关心它们.


dpa*_*los 2

封装:将数据包装成单个单元。单个单元(类)。在类中,有成员、数据成员,它们包装在称为类的单元中。例如,你的包是一个单独的单元,你把书、笔放在包里。同一班级是一个单位。

封装资源

抽象:隐藏背景细节。OOP 提供了这些设施。我们可以将数据保存在提供安全性的对象内。该类还提供了此功能,您无法访问该类的私有数据。如果您想在将数据设为私有时保护数据,则只能访问公共的、受保护的数据。

抽象资源