lunes, 30 de mayo de 2016

Herencia y Polimorfismo


Herencia

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene los atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad (la compañía que vende estas clases tiende a proteger las datos miembro usando la encapsulación).
Tomado de:
http://es.ccm.net/contents/411-poo-herencia

Ejemplo de herencia en java.




Tomado de: https://www.google.com.co/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiv3s_OloLNAhXF1CYKHS_gAO4QjRwIBw&url=http%3A%2F%2Fcodeoptimizations.com%2Fherencia-en-java%2F&bvm=bv.123325700,d.eWE&psig=AFQjCNHQ6IwBPLcEV7yiFjO0EFt1grCcjg&ust=1464710632612155




Jerarquía de clase



La relación primaria-secundaria entre clases puede representarse desde un punto de vista jerárquico, denominado vista de clases en árbol. La vista en árbol comienza con una clase general llamada superclase (a la que algunas veces se hace referencia como clase primaria, clase padre,clase principal, o clase madre; existen muchas metáforas genealógicas). Las clases derivadas (clase secundaria o subclase) se vuelven cada vez más especializadas a medida que van descendiendo el árbol. Por lo tanto, se suele hacer referencia a la relación que une a una clase secundaria con una clase primaria mediante la frase "es una" x o y.





Herencia múltiple



Algunos lenguajes orientados a objetos, como C++ permiten herencias múltiples, lo que significa que una clase puede heredar los atributos de otras dos superclases. Este método puede utilizarse para agrupar atributos y métodos desde varias clases dentro de una sola.



Tomado de: http://es.ccm.net/contents/411-poo-herencia

Herencia en java
https://www.youtube.com/watch?v=CYNLhg42O9c


Polimorfismo


En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.

Dicho de otra forma, 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. De esta forma podemos tener dentro de una misma estructura (arrays, listas, pilas, colas, ...) objetos de distintas subclases, haciendo que el tipo base de dichas estructuras sea un puntero a la superclase. Otros lenguajes nos dan la posibilidad de crear objetos polimórficos con el operador new. La forma de utilizarlo, por ejemplo en java, sería:


 Superclase sup = new (Subclase);




Tomado de: http://cursos.aiu.edu/Lenguajes%20de%20Programacion%20Orientados%20a%20Objetos/PDF/Tema%204b.pdf

Ejemplo de polimorfismo en java




Tomado de: https://www.google.com.co/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwj48Z_Gl4LNAhVG6CYKHUH_D_8QjRwIBw&url=https%3A%2F%2Frahsuarez.wordpress.com%2F2011%2F12%2F09%2Fclases-y-objetos-java%2F&bvm=bv.123325700,d.eWE&psig=AFQjCNHgcAOzAMzHjVq_uwBkKCyVnOB1Ew&ust=1464710923375520



Polimorfismo en java
https://www.youtube.com/watch?v=BSw1MLEc4PQ

No hay comentarios.:

Publicar un comentario