Please enable JavaScript.
Coggle requires JavaScript to display documents.
Polimorfismo e Interfaces, Referencia: - Coggle Diagram
Polimorfismo e Interfaces
Polimorfismo
permite escribir programas que procesan objetos que comparten la misma superclase como si todos fueran objetos de la superclase.
Simplifica la programación
Permite programar en general en lugar de programar en específico.
Comportamiento del Polimorfismo
Compilador comprueba el tipo de clase de la variable
Si la clase tiene el método adecuado, la llamada se compila.
En tiempo de ejecución, el tipo de objeto al que se refiere la variable determina el tipo de método real a utilizar.
InstanceOf
Verifica si hay herencia.
Dynamic binding
Java determina el tipo e invoca método correspondiente.
Clases Abstractas y Métodos Abstractos
El objetivo principal de la clase abstracta es proveer una super clase apropiada para que hereden otras clases.
Las clases concretas instancian objetos.
Clases abstractas no pueden instanciar objetos.
Las clases abstractas pueden tener 1 o más métodos abstractos.
Los métodos abstractos no tienen implementación. Las clases concretas son las que implementan dichos métodos.
Toda clase que contenga métodos abstractos debe ser declarada como abstracta.
Los constructores y métodos estáticos no pueden ser declarados abstractos.
Métodos Finales y Clases Finales
Métodos declarados privados son implicitamente declarados final.
No se pueden sobreescribir
Métodos declarados estáticos son implicitamente declarados final.
Un método declarado final no puede ser sobreescrito.
Método declarado final no cambia. Todas las subclases usan la misma implementación.
Clase final no puede ser extendida.
Todos los métodos en una clase final son declarados final.
Problemas con los métodos de llamada de constructores
No llame a métodos sobreescritos desde los constructores.
Puede llamar a un objeto anulado antes de que la subclase se inicialice por completo.
Como la inicialización no se ha realizado, se pueden crear errores difíciles de detectar.
Es aceptable llamar a un método estático desde un constructor.
Extensibilidad
Al aplicar el polimorfismo se pueden agregar facilmente.
Modificación sencilla. Sólo se modifica la nueva clase.
Interfaces
Asigna funcionalidades compartidas a clases no relacionadas.
Referencia: