Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 我们可以在没有封装的情况下进行抽象吗?反之亦然?_Oop_Encapsulation_Abstraction - Fatal编程技术网

Oop 我们可以在没有封装的情况下进行抽象吗?反之亦然?

Oop 我们可以在没有封装的情况下进行抽象吗?反之亦然?,oop,encapsulation,abstraction,Oop,Encapsulation,Abstraction,我在一次采访中遇到了这个问题。我回来后在这里读到了这篇文章,偶然发现,和,还有许多其他的重复文章都说了几乎相同的话 我知道一般定义早于它们在编程语言中的实现。我还知道编程语言(我说的是Java)尽量将这两个定义分开。例如:Java将class视为封装,因为它提供了一个包装器来保存所有类似的数据;而接口是一种抽象 但我真正想知道的是这两个定义是如何重叠的是两个子集,重叠或完全不相交的集合。我知道这些定义将wrt更改为泛型定义和特定于语言的定义,因此如果可以,请同时回答这两个问题,或者至少提及您正在

我在一次采访中遇到了这个问题。我回来后在这里读到了这篇文章,偶然发现,和,还有许多其他的重复文章都说了几乎相同的话

我知道一般定义早于它们在编程语言中的实现。我还知道编程语言(我说的是Java)尽量将这两个定义分开。例如:Java将
class
视为封装,因为它提供了一个包装器来保存所有类似的数据;而
接口
是一种抽象


但我真正想知道的是这两个定义是如何重叠的
是两个子集,重叠或完全不相交的集合。
我知道这些定义将wrt更改为泛型定义和特定于语言的定义,因此如果可以,请同时回答这两个问题,或者至少提及您正在谈论的一个

这回答了你的问题吗?我必须说,这是解释抽象的一个极好的方法,但答案没有提到任何关于封装的内容。我更喜欢Bertrand Meyer对封装的定义,我在这里简要描述了一下:您还可以在中了解更多。