我知道由于研究存在差异,但我只能发现它们之间的相似之处...我希望有人能澄清这些差异,如果你能为每个人做一个例子真的有帮助.Java程序也请将此程序视为封装或信息隐藏,甚至两者兼而有之
class DogsinHouse {
private int dogs;
public int getdog() {
return dogs;
}
public void setdog(int amountOfDogsNow) {
dogs = amountOfDogsNow;
}
}
Run Code Online (Sandbox Code Playgroud) 有些人将抽象定义为:
抽象通过在基本功能上提供一个层来隐藏实现细节.
它不是封装的一部分来隐藏对象用户的实现细节吗?
让我们说Animal类有函数eat(),那么为对象的用户提供这个接口是封装还是抽象?或提供使用的函数名称是抽象,方法实现部分的隐藏是封装.
我很困惑,因为在许多地方它是抽象的,很多人说实现细节隐藏是封装?
在这个SO问题的最佳答案:
抽象=对象外部; 封装(通过信息隐藏实现)=内部对象.
那么这意味着对象接口暴露是抽象而隐藏在对象内部的数据是封装吗?