ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ejercicios de aplicación: herencia y polimorfismo


Enviado por   •  14 de Noviembre de 2018  •  Tareas  •  1.854 Palabras (8 Páginas)  •  389 Visitas

Página 1 de 8

  [pic 3]

                

                                                             Nombre de la materia

Programación orientada a objetos.

Nombre de la Licenciatura

Ingeniería en Sistemas Computacionales.

Nombre del alumno

Wendy

Matrícula

xxxxx

Nombre de la Tarea

Ejercicios de aplicación: herencia y polimorfismo.

Unidad #6

Herencia y polimorfismo.

Nombre del Tutor

xxxxx.

Fecha

14/Febrero/2017.

HERENCIA Y POLIMORFISMO.

Herencia: en POO es la habilidad de extender una funcionalidad existente definiendo una nueva clase que hereda funcionalidad de una clase existente. Una clase puede heredar atributos por dos superclases (clases padres). La herencia múltiple puede ser usada para agrupar atributos y métodos de distintas clases en una sola.

Polimorfismo: significa literalmente muchas formas, en POO es una técnica para optimizar la funcionalidad basada en tipos particulares.

La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases y polimorfismo con métodos.

Introducción

En esta unidad veremos componentes más avanzados, después de diseñar las clases se pueden contener otras (subclases) en estas, dicho de otra manera diseñaremos clases que hereden funcionalidad de otras clases; a esto se le llama herencia.

También, estudiaremos cómo podemos hacer que un objeto pueda tomar diferentes formas (o tipos) por los cuales están definido, es decir, polimorfismo y es un aspecto fundamental de la POO.

Ejemplo de herencia y polimorfismo

Para entender los conceptos de herencia, polimorfismo, sobrecarga, overriding e interfaces se expone un ejemplo práctico:

Desarrollaremos un software que permita calcular el área y perímetro de diferentes figuras geométricas, iniciamos con un rectángulo y un círculo, posteriormente se utilizara el código para poder extenderlo y reutilizar sus partes.

[pic 4][pic 5]

El problema planteado es sencillo, necesitamos calcular área y perímetro de las figuras mencionadas anteriormente.

Las fórmulas para resolver los ejercicios son:

[pic 6]

Herencia

Herencia: es un proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto, la herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.

El código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada (subclase) de ella.

Existen dos tipos de herencia:

Herencia Simple: Una clase puede heredar de una única clase. 

Herencia Múltiple: indica que se pueden definir nuevas clases a partir de dos o más clases iniciales, Clases forman un grafo dirigido acíclico Java sólo permite herencia simple. 

Retomando nuestro ejemplo sobre figuras geométricas, sabemos que podemos definir una clase que se llame figura y que contenga las propiedades: nombre, área y perímetro.

[pic 7]

Se muestra una abstracción de la figura, sabemos que cualquier objeto que sea una figura geométrica podrá tener las propiedades: nombre, área y perímetro. Sin embargo, es tan abstracto este concepto que no nos sirve de mucho, ya que como tal una figura geométrica no tiene fórmula para calcular su área ni perímetro, necesitamos ser más específicos.

[pic 8]

Al crear una clase como ejemplo e instanciamos una clase figura, la consola muestra el siguiente resultado:

[pic 9]

Procedemos a declarar nuestras clases Rectángulo y Círculo:

[pic 10]

Antes de implementar nuestras clases Rectángulo y Círculo, vamos a ver que al definir la clase, le agregamos la palabra reservada extends seguida del nombre de la clase de la cual vamos a heredar, es decir Figura en nuestro ejemplo.

El diagrama de relación con nuestras clases definidas queda como sigue:

[pic 11]

Ambas clases (rectángulo y círculo) heredan de la clase Figura, es lo que se llama Subclases (clase hijo), en el caso de Figura, se dice que es una Superclase (clase padre) con referencia a las otras dos.

Observamos que Círculo y Figura tienen los métodos y propiedades protected y public que están declarados en la clase Figura.

Enseguida integramos la clase Rectángulo:

[pic 12]

  • La clase rectángulo tiene como propiedades las variables base y altura definidas como tipo float.
  • En el constructor, recibimos valores para ponerlos a las variables.
  • Dentro del mismo constructor, asignamos a la variable nombre el valor del string “Rectángulo” aunque en esta clase no hay ninguna variable llamada nombre, no mostrara error dado que al ser Rectángulo una subclase de Figura, hereda sus propiedades y métodos (protected y public). De esta forma podemos obtener sus valores como si se hubieran declarado en la misma clase.

Entonces la clase círculo se muestra así:

[pic 13]

La clase tiene los mismos métodos con diferentes propiedades específicas de la clase, aunque hereda los mismos de la superclase figura.

...

Descargar como (para miembros actualizados)  txt (11.7 Kb)   pdf (653.1 Kb)   docx (795.4 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com