herencia y polimorfismo

23
REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIA INSTITUTO POLITECNICO SANTIAGO MARIÑO INGENIERIA DE SISTEMAS LENGUAJE DE PROGRAMACIÓN III SAIA – BARINAS Herencia y Polimorfis mo Participante: Nestor Moreno C.I. 14.331.859 Profesora: Rosbelia Balza Guarenas, Febrero del 2016

Upload: nestormoren

Post on 13-Apr-2017

180 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Herencia y Polimorfismo

REPUBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR PARA

LA EDUCACIÓN UNIVERSITARIAINSTITUTO POLITECNICO SANTIAGO MARIÑO

INGENIERIA DE SISTEMASLENGUAJE DE PROGRAMACIÓN III

SAIA – BARINASHerencia y

Polimorfismo

Participante:Nestor MorenoC.I. 14.331.859

Profesora: Rosbelia Balza

Guarenas, Febrero del 2016

Page 2: Herencia y Polimorfismo

1. Introducción2. Herencia

1. Definición2. Superclases – subclases3. Redefinición de Métodos4. Ejemplo 15. Ejemplo 2

CONTENIDO

3. Polimorfismo1. Definición2. Varias formas de Polimorfismo3. Variables Polimórficas4. Ejemplos

4. Conclusión5. Bibliografía

Page 3: Herencia y Polimorfismo

INTRODUCCIÓN

Dentro de la programación orientada a objetos en Java, nos introduciremos en una de las características principales, la herencia, que es una forma de reutilización de software en la que las clases se crean absorbiendo los datos (atributos) y métodos (comportamiento) de una clase existente. Y por consiguiente, se planteara todo lo referente al polimorfismo, el cual este nos permite programar en forma general, en vez de forma especifica.

Page 4: Herencia y Polimorfismo

HERENCIA

Page 5: Herencia y Polimorfismo

¿Qué es la Herencia?

La herencia es una propiedad que permite la declaración de nuevas clases a partir de otras ya existentes. Esto proporciona una de las ventajas principales de la Programación Orientada a Objetos: la reutilización de código previamente desarrollado ya que permite a una clase más específica incorporar la estructura y comportamiento de una clase más general.

Page 6: Herencia y Polimorfismo

HerenciaPor ejemplo:

Cuando una clase B se construye a partir de otra A mediante la herencia, la clase B hereda todos los atributos, métodos y clases internas de la clase A. Además la clase B puede redefinir los componentes heredados y añadir atributos, métodos y clases internas específicas.

Page 7: Herencia y Polimorfismo

Herencia

Superclase – subclases

Al crear una clase, en vez de declarar miembros (variables y métodos) completamente nuevos, el programador puede designar que la nueva clase herede los miembros de una clase existen. Esta clase existente se conoce como superclase, y la nueva clase se conoce como subclase. Una vez creada, cada subclase puede convertirse en superclase de futuras subclases.

Page 8: Herencia y Polimorfismo

Herencia

Superclase – subclases

Page 9: Herencia y Polimorfismo

Herencia - JerarquíaJerarquía de Clases

Java permite múltiples niveles de herencia pero no la herencia múltiple, es decir una clase sólo puede heredar directamente de una clase ascendiente. Por otro lado, una clase puede ser ascendiente de tantas clases descendiente como se desee (un único padre, multitud de hijos).

Page 10: Herencia y Polimorfismo

Herencia - RedefiniciónRedefinición de Métodos

• En la clase derivada podemos redefinir (override) métodos, lo cual corresponde a reimplementar un método de la clase base en la clase derivada.

• Si aún deseamos acceder la método de la clase base, lo podemos hacer utilizando la palabra super como referencia al padre.

• Notar que también usamos esta palabra reservada para invocar constructores

Page 11: Herencia y Polimorfismo

Herencia – Ejemplo 1/1Ejemplo 1/2:

Si un objeto se ha asignado a una referencia de una de sus superclases, es aceptable convertir el tipo de ese objeto de regreso a su propio tipo. De hecho, esto debe hacerse para enviar a ese objeto cualquiera de los mensajes que no aparecen en esa superclase.Ahora bien, en nuestro primer ejemplo de Herencia aparece en la figura 27.3

Page 12: Herencia y Polimorfismo

Herencia – Ejemplo 2/2Ejemplo 2/2:

• Asignación de referencias de subclases o referencias de superclases, Punto.java

• Asignación de referencias de subclases o referencias de superclases, Circulo.java

Page 13: Herencia y Polimorfismo

Herencia – Ejemplo 1/2Otro Ejemplo 1/2:

• Crea tres clases llamadas EmpleadoGerenteVendedorLa definición de estas tres clases es la siguiente:

En la clase Empleado hemos definido tres variables: name, age y empno. Usamos un constructor parametrizado para inicializar estas tres variables. Luego creamos una clase Gerente que hereda de la clase Empleado. Para heredar de una clase, se usa la palabra clave “extends”, seguida del nombre de la clase de la que quiere heredar. Como la clase Gerente ahora hereda de la clase Empleado, tiene acceso a todos los miembros public y protected de la clase Empleado.

Page 14: Herencia y Polimorfismo

Herencia – Ejemplo 2/2Otro Ejemplo 2/2:

De la misma forma, la clase Vendedor también contiene una constructor que inicializa las variables de la clase base usando la palabra “super”. También inicializa la variable commission, que es exclusiva de la clase Vendedor.

Page 15: Herencia y Polimorfismo

POLIMORFISMO

Page 16: Herencia y Polimorfismo

¿Qué es el Polimorfismo?

En java, polimorfismo es la capacidad de un objeto de comportarse de múltiples maneras, dependiendo de la referencia de la clase almacenada en el objeto. El polimorfismo en Java se implementa por medio de la herencia.

POLI: Múltiple

Morfismo: Formas

Page 17: Herencia y Polimorfismo

Polimorfismo

Existen varias formas de polimorfismo:

Se aplica al llamar el mismo nombre de método sobre instancias de distinta clase.

Si creamos múltiples constructores. cuando vía subtipo asignamos una instancia de una subclase a

una referencia a la clase base. Creando una clase derivada, gracias a la relación es-un podemos

utilizar instancias de la clase derivada donde se esperaba una instancia de la clase base. También se conoce como principio de sustitución.

Page 18: Herencia y Polimorfismo

Polimorfismo

Variable polimórfica:

Una variable referencia es polimórfica cuando su tipo de declaración no coincide con el tipo del objeto al que referencia:

Figura f1 = new Figura(“Estandar”, “Rojo”);

Figura f2 = new Circulo(“Verde”, 5.0); F2 variable polimorfica.

Page 19: Herencia y Polimorfismo

Polimorfismo

Pasos de Argumentos:

• Las conexiones polimorfas se realizan a veces de manera implícita en el paso de argumentos a una operación.

Page 20: Herencia y Polimorfismo

Ejemplo1/1 - Polimorfismo

Ejemplo 1/1:

Crea una clase llamada Forma. Agrega una variable miembro “name” a esta clase. Añade un constructor parametrizado que inicialice name. Añade un método DsplayName que muestra la variable name en la consola con una sentencia apropiada. Crea dos clases: Círculo y Cuadrado. Estas clases implementaran su propio método DisplayName. Usando una clase de prueba, como MyClass.java, muestra cómo lograr polimorfismo en este caso.

Page 21: Herencia y Polimorfismo

Ejemplo2/2 - Polimorfismo

Ejemplo 2/2:

• Ahora bien, dentro de MyClass.java almacenamos referencias de las clases Forma, Círculo y Cuadrado en el objeto tipo Forma.

• Luego llamamos el método DisplayName y vemos que se comporta de forma diferente. Así es como se implementa el polimorfismo

Page 22: Herencia y Polimorfismo

CONCLUSIÓN

Tenemos entonces lo siguiente:

Java soporta solamente la herencia simple.En la herencia, una clase solo puede heredar de

otra clase.El polimorfismo es particularmente efectivo en

la implementación de software en capasCon el polimorfismo es posible diseñar sistemas

que se puedan extender fácilmente.La herencia y el polimorfismo trabajan de la

mano conjuntamente.

Page 23: Herencia y Polimorfismo

BIBLIOGRAFIA

Herencia. Cómo programar en Java.Paul J. Deitel. Pág. 355 al 362

Superclases. Cómo programar en C/C++ y JavaCuarta edición, DEITEL, Pág. 636 al 640

Programación Java. Guía de Java paso a paso.Autor: Troy Dimes, Pág. 120 a 132

Java. Users Java.Autor: Ignacio Vivona. Pág. 21 al 28