Solo algunos puntos más para aclarar las cosas
No se debe confundir la abstracción de datos con la clase abstracta. Ellos son diferentes.
Generalmente decimos que la clase o método abstracto es básicamente ocultar algo. Pero no ... Eso está mal. ¿Qué significa la palabra abstracta? La búsqueda de Google dice que la palabra inglesa abstracción significa
"Existiendo en el pensamiento o como idea pero sin tener existencia física o concreta".
Y eso también es cierto en el caso de la clase abstracta. No está ocultando el contenido del método, pero el contenido del método ya está vacío (no tiene una existencia física o concreta) pero determina cómo debe ser un método (existente en el pensamiento o como idea) o un método debe estar en la calss. .
Entonces, ¿cuándo usas realmente métodos abstractos?
- Cuando un método de la clase base será diferente en cada clase secundaria que lo amplíe.
- Y, entonces, debe asegurarse de que la clase secundaria tenga implementada esta función.
- Esto también asegura que el método, para tener una firma obligatoria como, debe tener n número de parámetros.
¡Entonces sobre la clase abstracta! - ¡Una clase abstracta no puede ser instanciada, solo extendida! Pero por qué ?
- Se debe evitar que una clase con método abstracto cree su propia instancia porque los métodos abstractos en ella no tienen ninguna implementación significativa.
- Incluso puede hacer un resumen de clase, si por alguna razón encuentra que tiene menos sentido tener una instancia de esa clase.
¡Una clase abstracta nos ayuda a evitar crear una nueva instancia de ella!
¡Un método abstracto en una clase obliga a la clase secundaria a implementar esa función con seguridad con la firma proporcionada!