现在我知道有大量文章和问题涉及到这一点并且经历了大部分内容,我需要知道我的理解是否准确。
抽象:一种处理复杂问题的方法。我们基本上确定了最基本的必需品,同时省略了非必要的细节。简化。
封装:将内容包装到一个黑盒子中的过程。黑匣子提供不同的服务,但一切都被绑定为一个单元。
关系:抽象让我们明确区分了界面(要点)和实现(非必需品)。现在,当实现这些想法时,非必需品进入黑盒子,而界面为我们提供服务。换句话说,抽象概念的实现是封装。
在编程术语中:接口和抽象类用于定义抽象概念。扩展或实现这些的具体类是我们的黑盒子(封装)。存取器,变换器和修改器用于改进黑盒子。基本上,我们的封装有多好取决于我们的抽象有多好。
答案 0 :(得分:1)
你对这些概念的理解对我来说似乎很清楚。我唯一要补充的是封装本身并不是""必然与抽象有关。 在OOP中,封装是指对象的内部状态,即使它们没有扩展抽象超类或实现接口。
以具体的方式细分概念,我说它是隐藏外部提供的某些服务的实现的过程(因此可以在以后修改或更改,而无需更改封装之外的任何内容) object)同时提供相同的" view",与其交互的其他对象/用户使用相同的可用接口(对象的公开方法)。
那就是说,你可以说封装是抽象的要求:如果你没有"封装"你想要抽象的东西,它意味着你提供了一个具体的实现,对于扩展/实现它的所有对象保持不变,从而失去任何抽象。