¿Qué es un método abstracto?
En la programación orientada a objetos, las subrutinas llamadas "métodos" se utilizan para realizar funciones en un programa. Estos métodos consisten en instrucciones de programación que realizan una acción, configuran parámetros de entrada para personalizar acciones y pueden devolver o generar un valor de algún tipo de objeto o clase. Los métodos son las acciones realizadas en un programa desde una determinada clase o dentro de un objeto, y se utilizan para acceder y manipular datos almacenados dentro de un objeto. Existen muchos métodos diferentes y cada uno tiene un uso particular. Un tipo específico que se realiza a partir de una superclase abstracta y heredado por subclases se conoce como un método abstracto.
Generalmente, el método abstracto realiza poca o ninguna implementación dentro de su superclase abstracta. Los códigos contenidos en este tipo de método se consideran códigos ficticios y no se implementan ellos mismos. Esto no significa que el método abstracto específico en una clase abstracta particular no se use. Por el contrario, el método abstracto actúa como modelo o marcador de posición para las subclases para finalizar la implementación del método.
Las superclases pueden contener múltiples subclases, y todas las subclases de una superclase tienen ciertos estados y comportamientos similares. Las clases abstractas, por lo tanto, son un tipo de clase virtual que exhibe herencia virtual. Esto significa que cualquier subclase derivada de una superclase hereda las restricciones de la superclase de la que deriva. Por lo tanto, los métodos en subclases se derivan de métodos abstractos de superclases. Al programar y usar métodos abstractos, el programador debe declarar la clase abstracta en lugar de virtual.
Por ejemplo, una superclase de "Objetos gráficos" contiene las subclases "Círculo", "Cuadrado", etc. Como tal, todos los círculos y cuadrados tienen los mismos estados: orientación, posición, color de relleno, color de línea y comportamientos: moveTo , cambiar el tamaño, rotar, dibujar - como "Objetos gráficos". Todas las subclases en esta superclase tienen las mismas cualidades, pero se implementan de diferentes maneras. El método abstracto de la superclase proporciona la base sin implementación, y las subclases realizan la implementación real utilizando los mismos métodos. Aunque cada subclase utiliza el mismo método que la clase abstracta, definen de forma exclusiva la forma en que se llevará a cabo el método.
El uso de un método abstracto permite la generalización en el nivel superior o superclase y la especificación en los niveles inferiores o subclases. Esta jerarquía minimiza la cantidad de programación de métodos para cada subclase específica. El uso de estos métodos también permite la idempotencia de las subclases, lo que significa que si un método se implementa una y otra vez, el resultado es el mismo cada vez.