Herencia y Polimorfismo
-
Upload
nestormoren -
Category
Education
-
view
180 -
download
0
Transcript of 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
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
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.
HERENCIA
¿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.
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.
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.
Herencia
Superclase – subclases
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).
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
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
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
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.
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.
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
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.
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.
Polimorfismo
Pasos de Argumentos:
• Las conexiones polimorfas se realizan a veces de manera implícita en el paso de argumentos a una operación.
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.
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
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.
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