Get Started. It's Free
or sign up with your email address
Polimorfismo by Mind Map: Polimorfismo

1. Reglas para la construccion de los interfaces

1.1. Las interfaces no se pueden instanciar directamente No se requiere que una interfaz contenga métodos Una interfaz no se puede marcar como final Todas las interfaces de alto nivel se les asume tener acceso public o por defecto, y deben incluir el modificador abstract en su definición. Marcar una interfaz como private, protected o final, provocará un error de compilación. Todos los métodos no por defecto en una interfaz se asume que tienen los modificadores abstract y public en su definición. De igual manera, marcar un método como private, protected o final, lanzará un error de compilación.

1.1.1. Untitled

2. Uso de clases abstractas

2.1. Al trabajar clases y métodos abstractos, no solo mantenemos nuestra aplicación mas organizada y fácil de entender sino que también al no poder instanciar una clase abstracta nos aseguramos de que las propiedades especificas de esta, solo estén disponibles para sus clases hijas.

2.1.1. Untitled

3. Uso de clases de interfaces

3.1. Consideremos la extensión de la clase  Employee para que podamos ordenar arreglos  de empleados según su salario. La interfaz Comparable ya está definida en el  lenguaje, luego sólo debemos implementarla. Ver EmployeeSortTest.java Ver documentación de clase Arrays e interfaz  Comparable. Notar el métodos genérico sort de  la clase Arrays

3.1.1. Untitled

4. Exepciones

4.1. Propagación de excepciones Lanzar la excepción excepción a nivel de método Relanzar Relanzar si es necesario necesario hasta que llegue a la Interfaz Interfaz Sólo se conoce qué pasó en la interfaz interfaz

4.1.1. Untitled

5. Polimorfismo

5.1. Untitled

5.1.1. (1) el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase. (2) objetos de distintas subclases, haciendo que el tipo base de dichas estructuras sea un puntero a la superclase.

5.1.1.1. Untitled

5.1.1.1.1. Elemento flotante

6. Ligadura Dinámica

6.1. Ligadura dinámica: Consiste en realizar el proceso de ligadura en tiempo de ejecución siendo la forma dinámica del objeto la que determina la versión del método a ejecutar. Se utiliza en todos los métodos de instancia de Java que no son privados ni final. (3) La ligadura dinámica se encarga de ligar o relacionar la llamada a un método con el cuerpo del método que se ejecuta finalmente. (4)

6.1.1. Untitled

6.1.2. Untitled

7. Ligadura Estática

7.1. Consiste en realizar el proceso de ligadura en tiempo de compilación según el tipo declarado del objeto al que se manda el mensaje. (5) * La utilizan (en Java) los métodos de clase y los métodos de instancia que son privados o final (ya que estos últimos no pueden ser sobrescritos). (6)

7.1.1. Untitled

7.1.2. Untitled

8. Clase Abstracta

8.1. Una clase que declara la existencia de métodos pero no la implementación de dichos métodos (o sea, las llaves { } y las sentencias entre ellas), se considera una clase abstracta. Una clase abstracta puede contener métodos no-abstractos pero al menos uno de los métodos debe ser declarado abstracto. (7) Para declarar una clase o un metodo como abstractos, se utiliza la palabra reservada abstract. (8)

8.1.1. Elemento flotante

9. Interfaces

9.1. Las Interfaces son usadas para indicar qué métodos debe obligatoriamente implementar (contener) una Clase (aunque no tienen por qué comportarse del mismo modo).(9) Los métodos definidos en una una Interface deben ser public

9.1.1. Untitled

10. Reglas para la construccion de clases abstractas

10.1. Reglas de definición de clases abstractas: Las clases abstractas no pueden ser instanciadas directamente Las clases abstractas pueden estar definidas por cualquier número (inluyendo 0) de métodos abstractos y no abstractos Las clases abstractas no pueden ser marcadas como private o final(4) Una clase abstracta que extiende a otra clase abstracta, hereda todos sus métodos abstractos como si fuesen sus propios métodos abstractos. La primera clase concreta que extienda una clase abstracta debe suministrar una implementación para todos los métodos abstractos heredados.(5)

10.1.1. Untitled