【问题标题】:Is my understanding of abstraction, encapsulation and their relationship correct?我对抽象、封装及其关系的理解是否正确?
【发布时间】:2017-01-06 09:13:32
【问题描述】:

现在我知道有大量文章和问题涉及这个问题,并且我已经阅读了大部分内容,我需要知道我的理解是否准确。

抽象:一种处理复杂性的方法。我们基本上确定了最基本的基本要素,同时省略了非基本的细节。简化。

封装:将事物包装到一个黑盒子中的过程。黑匣子提供不同的服务,但一切都被捆绑为一个单一的单元。

关系:抽象让我们清楚地区分了接口(本质)和实现(非本质)。现在,当这些想法被实施时,非必需品进入黑匣子,而界面为我们提供服务。换句话说,抽象概念的实现就是封装。

在编程术语中:接口和抽象类用于定义抽象出来的概念。扩展或实现这些的具体类是我们的黑盒(封装)。访问器、修改器和修改器用于改进黑盒。所以基本上,我们的封装有多好取决于我们的抽象有多好。

【问题讨论】:

    标签: java oop encapsulation abstraction


    【解决方案1】:

    嗯,你对这些概念的理解对我来说似乎很清楚。我要补充的唯一一件事是,封装“本身”不一定与抽象相关。 在 OOP 中,封装是指对象的内部状态,即使它们没有扩展抽象超类或实现接口。

    具体地分解这个概念,我想说这是隐藏外部提供的某些服务的实现的过程(因此可以在以后修改或更改,而无需更改封装对象之外的任何内容)同时提供相同的服务“视图”,与与之交互的其他对象/用户相同的可用接口(对象的公开方法)。

    也就是说,您可以说封装是抽象的要求:如果您不“封装”您想要抽象的内容,则意味着您提供的具体实现对于所有扩展/的对象都保持不变/实现它,从而失去任何抽象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-07
      • 2010-11-07
      • 2017-05-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多