以封装为例,我可以想到用户与手机之间的交互。用户不需要知道手机的内部工作即可操作,因此这称为抽象。但是封装适合本例吗?有人可以对此进行说明吗?
封装是一种实现“信息隐藏”的方法,因此,按照您的示例,您不需要“知道移动电话的内部工作原理”。您有一个界面来使用设备行为而无需了解实施细节。
另一方面,抽象可以解释为对不同对象使用相同接口的能力。可以存在同一接口的不同实现。细节通过封装隐藏。
抽象:你永远不会购买“设备”,而总是购买更特定的东西:iPhone,GSII,诺基亚3310 …在这里,iPhone,GSII和N3310是具体的东西,设备是抽象的。
封装:你有几个设备,所有设备都有一个USB端口。你不知道那是什么样的印刷电路,你只需要知道能够将USB电缆插入其中即可。
抽象是一个概念,封装允许这样做。我的例子不是最好的例子(两个模块之间没有真正的联系)。
你可以在不使用抽象的情况下进行封装,但是如果你想在项目中使用某种抽象,则需要封装。