【发布时间】:2017-03-20 01:49:56
【问题描述】:
有些人将抽象定义为:
抽象是通过提供一个层来隐藏实现细节 基本功能。
对对象的用户隐藏实现细节不是封装的一部分吗?
假设Animal类有函数eat(),那么给对象的用户提供这个接口是封装还是抽象?或者提供函数名使用是抽象,隐藏方法实现部分是封装。
我真的很困惑,因为在很多地方它是抽象的,很多人说实现细节隐藏是封装?
在这个SO question 最佳答案中:
抽象=外部对象;封装(通过实现 信息隐藏)=内部对象。
那么这是否意味着对象接口暴露是抽象,而隐藏在对象内部的数据是封装?
【问题讨论】: