封装和抽象之间的确切区别是什么?
当前回答
抽象是对用户隐藏无用的数据 封装是将数据绑定到一个胶囊(类)中。 我认为封装是我们实现抽象的方式。
其他回答
抽象—隐藏实现—在设计—使用接口/抽象类
封装—隐藏数据—在开发时—使用访问修饰符(公共/私有)
抽象和封装过程都会生成接口。
通过封装生成的接口隐藏了实现细节。
与抽象之前相比,通过抽象生成的接口可以适用于更多的数据类型。
抽象和封装的区别。
让我用简单的代码示例来尝试一下
抽象=数据隐藏+封装
// Abstraction
interface IOperation
{
int GetSumOfNumbers();
}
internal class OperationEven : IOperation
{
// data hiding
private IEnumerable<int> numbers;
public OperationEven(IEnumerable<int> numbers)
{
this.numbers = numbers;
}
// Encapsulation
public int GetSumOfNumbers()
{
return this.numbers.Where(i => i % 2 == 0).Sum();
}
}
封装要求模块化。它要求您创建具有数据和处理数据的方法的对象。在这种情况下,您可以将其视为一个模块。
抽象为您提供了类的一般视图。