La abstracción de datos es la propiedad en virtud de la cual sólo se exhiben al usuario los datos esenciales. Las unidades triviales o no esenciales no se muestran al usuario.
La abstracción de datos también se puede definir como el proceso de identificar solo las características requeridas de un objeto ignorando los detalles irrelevantes. Las propiedades y comportamientos de un objeto lo diferencian de otros objetos de tipo similar y también ayudan a clasificar/agrupar los objetos.
Ejemplo: Considere un escenario de la vida real de retirar dinero de un cajero automático. El usuario solo sabe que en el cajero automático primero ingrese la tarjeta de cajero automático, luego ingrese el código PIN de la tarjeta de cajero automático y luego ingrese la cantidad que desea retirar y, por último, obtiene su dinero. El usuario no conoce el mecanismo interno del cajero automático o la implementación de retiro de dinero, etc. El usuario simplemente sabe cómo operar el cajero automático, esto se llama abstracción.
En C#, la abstracción se logra con la ayuda de clases abstractas .
clases abstractas
- Una clase abstracta se declara con la ayuda de una palabra clave abstracta .
- En C#, no está permitido crear objetos de la clase abstracta. O, en otras palabras, no puede usar la clase abstracta directamente con el operador nuevo.
- La clase que contiene la palabra clave abstracta con algunos de sus métodos (no todos los métodos abstractos) se conoce como clase base abstracta .
- La clase que contiene la palabra clave abstracta con todos sus métodos se conoce como clase base abstracta pura.
- No está permitido declarar los métodos abstractos fuera de la clase abstracta.
- No está permitido declarar una clase abstracta como clase sellada .
Uso de clases abstractas y métodos abstractos con un ejemplo.
Hay situaciones en las que queremos definir una superclase que declare la estructura de una abstracción dada sin proporcionar una implementación completa de cada método. Es decir, a veces queremos crear una superclase que solo defina una forma generalizada que será compartida por todas sus subclases, dejando que cada subclase complete los detalles.
Considere un ejemplo clásico de «forma», quizás utilizado en un sistema de diseño asistido por computadora o simulación de juegos. El tipo base es «forma» y cada forma tiene un color, tamaño, etc. A partir de esto, se derivan (heredan) tipos específicos de formas: círculo, cuadrado, triángulo, etc., cada una de las cuales puede tener características y comportamientos adicionales. Por ejemplo, ciertas formas se pueden voltear. Algunos comportamientos pueden ser diferentes, como cuando desea calcular el área de un cuadrado.
Ejemplo:
C#
// 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 inheriting // the Shape class class Square : Shape { // private data member private int side; // method of square 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); } } }
Area of Square: 16
Encapsulación vs Abstracción de datos
- La encapsulación es la ocultación de datos (ocultación de información), mientras que la abstracción es la ocultación de detalles (ocultación de la implementación).
- Mientras que la encapsulación agrupa datos y métodos que actúan sobre los datos, la abstracción de datos se ocupa de exponer al usuario y ocultar los detalles de la implementación.
Ventajas de la abstracción
- Reduce la complejidad de ver las cosas.
- Evita la duplicación de código y aumenta la reutilización.
- Ayuda a aumentar la seguridad de una aplicación o programa, ya que solo se proporcionan detalles importantes al usuario.
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA