抽象和封装之间有什么具体区别吗?另外,抽象的概念是只在 OOP 的上下文中才有意义,还是一个通用术语?
最佳答案
抽象是这里更...抽象的术语。
封装可以被视为抽象的一个例子,其中实现细节被省略。但抽象作为一个概念当然不仅限于 OOP;它还包括 OOP。甚至就此而言,编程。抽象实际上是形成高阶概念,将看似不相关的具体概念联系起来。这是省略与想法无关的细节,仅捕获对其至关重要的内容的逻辑原则。
我认为每个人都熟悉的抽象的最好例子是数字。 “3”这个概念是什么意思?它可能意味着 3 头牛,或 3 艘 spaceship ,或 3 个梦想。这些都是互不相关的事情,但却有一些共同点;它们的基本共同点是它们各有 3 个。所以“3”是一个抽象概念,它忘记了它所量化的事物的细节。
同样在编程中,parametric polymorphism例如,允许我们抽象出列表内容的类型。所以一个List<A>
不在乎它是牛、宇宙飞船还是梦想的 list ,只要我们选择一种类型的东西并坚持下去。
关于java - 抽象和封装是两个不同的概念吗?抽象是专门与 OOP 相关的术语吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021613/