java - 抽象和封装是两个不同的概念吗?抽象是专门与 OOP 相关的术语吗?

标签 java oop

抽象和封装之间有什么具体区别吗?另外,抽象的概念是只在 OOP 的上下文中才有意义,还是一个通用术语?

最佳答案

抽象是这里更...抽象的术语。

封装可以被视为抽象的一个例子,其中实现细节被省略。但抽象作为一个概念当然不仅限于 OOP;它还包括 OOP。甚至就此而言,编程。抽象实际上是形成高阶概念,将看似不相关的具体概念联系起来。这是省略与想法无关的细节,仅捕获对其至关重要的内容的逻辑原则。

我认为每个人都熟悉的抽象的最好例子是数字。 “3”这个概念是什么意思?它可能意味着 3 头牛,或 3 艘 spaceship ,或 3 个梦想。这些都是互不相关的事情,但却有一些共同点;它们的基本共同点是它们各有 3 个。所以“3”是一个抽象概念,它忘记了它所量化的事物的细节。

同样在编程中,parametric polymorphism例如,允许我们抽象出列表内容的类型。所以一个List<A>不在乎它是牛、宇宙飞船还是梦想的 list ,只要我们选择一种类型的东西并坚持下去。

关于java - 抽象和封装是两个不同的概念吗?抽象是专门与 OOP 相关的术语吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021613/

相关文章:

java - 使用 XSLT 为所有节点生成 XML 的 xpath

java - 它是否正确 ?如何从文件加载字节?

c++ - 如何从 CPP 中的头文件访问枚举

c++ - 继承和 memcpy - 它是如何协同工作的?

C++面向对象的问题

java - 如何在没有 FORM POST 操作键的情况下编写项目数组的 HTML BODY 字符串?

具有等效负数和正数模式的 Java NumberFormat

python - Matplotlib 动画不在类内更新

java - 酒店使用数组

c# - C#中的对象健美操一级集合规则示例?