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 - 两个 selectManyListbox 出错

java - 安卓 : Update Image in GridView on touch event in Adapter

javascript - 如何通过只是对对象的引用的变量来为对象赋值?

java - 分析 Java 堆转储时内存不足

java - PlainDatagramSocketImpl(IOException : Operation not permitted)

java - 从 SQL Server 成功检索数据后 JTable 为空

java - 为什么程序打印的高度值是0,而不是我设置的?

c# - .NET 类重构困境

java - 他们在 java 中说 "every thing is an object"。真的吗?

javascript - 我关于命名空间全局对象与单例的争论如何?