Por abstacto podemos entender como una entidad que no existe en el espacio-tiempo.
Por "Clase Abstracta" vamos a entender como una clase como cualquier otra pero con algunas particularidades de la abstracción:
- Se utiliza la palabra reservada abstract antes de la palabra class:
- No puede "Instanciarse", es decir no se puede crear objetos de la clase:
- Se declaran métodos también abstractos pero estos no se implementan.
- Puede contener métodos no-abstractos pero al menos uno de los métodos debe ser declarado abstracto.
- La idea es que se puedan heredar y que sean las clases hijas quienes se encarguen de agregar la funcionalidad a los métodos abstractos.
- Las clase hija que hereda también puede ser abstracta.
abstract class MiClase{...}
NO--> ClaseAbstracta objeto = new ClaseAbstracta();
Extends Vs Implements
Las clases abstractas y las interfaces son muy similares, asi que hay que diferenciarlas bien:
Diferencias/Similitudes | Clase Abstracta | Interfaz |
Se utiliza con | extends | implements |
Funcionalidad | Heredar | Relacionar clases diferentes |
Herencia | Normal | De una SuperInterfaz |
Una clase | Hereda una sola vez | Puede implementar muchas interfaces |
Métodos | Listos para usar o sobreescribir | Obligatoriamente hay que declararlos |
Implementación | Pueden o no estar implementados | NO están implementados |
Atributos | Normales | Deben ser static final |
No hay comentarios:
Publicar un comentario