数据抽象是仅向用户展示基本细节的属性。普通或非必需单位不会展示给用户。
数据抽象也可以定义为忽略无关细节而仅识别对象的所需特征的过程。对象的属性和行为将其与其他类似类型的对象区分开来, 并且还有助于对对象进行分类/分组。
例子:考虑现实生活中从ATM取款的情况。用户只知道在ATM机中先输入ATM卡, 然后输入ATM卡的个人识别码, 然后输入他/她要提取的金额, 最后, 他/她就得到了钱。用户不了解ATM的内部机制或取款等的实现。用户仅知道如何操作ATM机, 这称为抽象。
在C#中, 借助于抽象类.
抽象类
- 抽象类的声明是借助抽象关键词。
- 在C#中, 你是不允许创建抽象类的对象。换句话说, 你不能直接在new运算符中使用抽象类。
- 包含abstract关键字及其某些方法(并非所有abstract方法)的类称为抽象基类.
- 包含abstract关键字及其所有方法的类称为纯Abstract Base Class。
- 你不允许在抽象类之外声明抽象方法。
- 你不得将抽象类声明为密封类.
考虑一个经典的"形状"示例, 该示例可能用于计算机辅助设计系统或游戏模拟中。基本类型是"形状", 每个形状都有颜色, 大小等。由此, 可以导出(继承)特定类型的形状-圆形, 正方形, 三角形等-每个形状可能具有其他特征和行为。例如, 某些形状可以翻转。某些行为可能会有所不同, 例如, 当你要计算正方形的面积时。
例子:
// C# program to calculate the area
// of a square using the concept of
// data abstraction
using System;
namespace Demoabstraction {// abstract class
abstract class Shape {// abstract method
public abstract int area();
}// square class inherting
// the Shape class
class Square : Shape {// private data member
private int side;
// method ofsquare class
public Square( int x = 0)
{
side = x;
}// overriding of the abstract method of Shape
// class using the override keyword
public override int area()
{
Console.Write( "Area of Square: " );
return (side * side);
}
}// Driver Class
class GFG {// Main Method
static void Main( string [] args)
{// creating reference of Shape class
// which refer to Square class instance
Shape sh = new Square(4);
// calling the method
double result = sh.area();
Console.Write( "{0}" , result);
}
}
}
【OOP编程(C#数据抽象详细指南)】输出如下:
Area of Square: 16
封装与数据抽象
- 封装形式是数据隐藏(信息隐藏), 而抽象是细节隐藏(实现隐藏)。
- 当封装将数据和作用于数据的方法组合在一起时, 数据抽象处理向用户公开和隐藏实现细节。
- 它降低了查看事物的复杂性。
- 避免代码重复并提高可重用性。
- 仅向用户提供重要的详细信息, 有助于提高应用程序或程序的安全性。
推荐阅读
- 算法设计(最小正方形可均匀切割矩形)
- 软件工程|迭代瀑布模型介绍
- HTML如何使用块和内联元素()
- 如何理解Java主线程(详细指南)
- Python如何处理异常和错误()
- 0x00000019,本文教您怎样处理0x00000019
- 铭瑄u盘打开,本文教您铭瑄主板bios怎样设置u盘打开
- 映泰主板bios设置,本文教您映泰主板bios怎样设置u盘打开
- bios,本文教您联想电脑bios怎样设置u盘打开