¿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 declaraciones 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 los datos almacenados dentro de un objeto. Hay 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 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 por sí mismos. Esto no significa que no se utilice el método abstracto específico en una clase abstracta en particular. Más bien, el método abstracto actúa como un modelo o marcador de posición para que las subclases terminen 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 se deriva. Por lo tanto, los métodos de las subclases se derivan de métodos abstractos de superclases. Al programar y utilizar 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 de esta superclase tienen las mismas cualidades, pero se implementan de diferentes formas. 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 única 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 siempre.