Está en la página 1de 4

UNIVERSIDAD RICARDO PALMA TALLER DE PROGRAMACION I

Facultad de Ingeniería Prof. Juana Segura González


Escuela de Ingeniería Informática 2014-II

GUIA N° 3.1
HERENCIA
Apellidos y Nombres: __________________________________________________Nota: _____

I. COMPETENCIAS
• Entiende e implementa los conceptos de Herencia y Polimorfismo.
• Entiende qué son las superclases y subclases.
• Implementa clases usando Herencia.
• Utiliza los miembros de la superclase mediante el método super().
• Aprende a utilizar métodos sobrescritos.

II. REFERENCIAS CONCEPTUALES


¿Qué se entiende por Herencia?
La herencia permite que se pueden definir nuevas clases basadas en clases existentes, lo cual facilita
re-utilizar código previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus
variables y métodos. La clase derivada puede añadir nuevas variables y métodos y/o redefinir las
variables y métodos heredados.
En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única
clase, con lo cual no es posible realizar herencia múltiple en base a clases. Sin embargo es posible
“simular” la herencia múltiple en base a las interfaces.
Concepto de Interface
Una interface es un conjunto de declaraciones de funciones. Si una clase implementa (implements) una
interface, debe definir todas las funciones especificadas por la interface. Una clase puede implementar
más de una interface, representando una forma alternativa de la herencia múltiple.
Una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso incorpora todos los
métodos de las interfaces de las que deriva.
Superclases y subclases
A menudo, un objeto de una clase es un objeto de otra clase también. Por ejemplo, en la geometría un
rectángulo es un cuadrilátero (al igual que los cuadrados, los paralelogramos y los trapezoides). Por lo
tanto, en java puede decirse que la clase Rectangulo hereda de la clase Cuadrilatero. En este contexto
la clase Cuadrilatero es una superclase , y la clase Rectangulo es una subclase. En notación UML es
una relación de herencia (ó generalización) representada por:

Superclase

Subclase

1
UNIVERSIDAD RICARDO PALMA TALLER DE PROGRAMACION I
Facultad de Ingeniería Prof. Juana Segura González
Escuela de Ingeniería Informática 2014-II

Código Java:
public class Cuadrilatero {
//propiedades miembros de clase
public Cuadrilatero() {
}
}
public class Rectangulo extends Cuadrilatero {
//propiedades miembro de clase
public Rectangulo() {
}
}

Otros ejemplos:

III.EJEMPLOS
Ejemplo 1
Crear una clase base Vehiculo con las siguientes características:
Atributos: Precio y año del vehículo.
Cualquier método o métodos que le permita obtener los valores de los atributos desde un JFrame
Un método mostrar() que devuelva un String con los valores de los atributos.
Utilizando herencia simple derivar dos clases de Vehículo: VehiculoTerrestre y VehiculoAereo.
Estas clases contienen los atributos Kilometraje y Horas de vuelo respectivamente.
Usted debe crear un método o métodos que le permita obtener los valores de estos atributos.
Se muestra el formulario:

2
UNIVERSIDAD RICARDO PALMA TALLER DE PROGRAMACION I
Facultad de Ingeniería Prof. Juana Segura González
Escuela de Ingeniería Informática 2014-II

Ejemplo 2

Universidad

Ejemplo 3

Crear una clase Deportista con dato miembro Nombre (String) y un método Mensaje(), el cual debe
mostrar los datos miembros de la clase en un mensaje de salida apropiado.
Incluir un constructor Deportista(String nombre) y un método devuelveNombre() que retorna el nombre
del deportista.
Utilizando la herencia, derivar de la clase Deportista dos clases:
Clase Futbolista, con dato miembro numGoles(Entero) y
Clase Basketbolista, con dato miembro numPuntos (Entero).
Codificar los constructores de cada clase para que se puedan ingresar:
 En caso de Futbolista el nombre y el número de goles.
 En caso de Basketbolista el nombre y el número de puntos.
En ambas clases derivadas, sobreescribir el método Mensaje() para que se muestren los datos del
ejemplo de corrida.
El Programa ha de crear un objeto de Futbolista y un objeto de Basketbolista para invocar a su
respectivo Mensaje().
Diseñe una jerarquía de clases óptima. Elabore una aplicación visual que implemente la jerarquía de
clase. Instancie un objeto de las clases Futbolista y Basketbolista
 Creación de la jerarquía de las clases y sus métodos correspondientes
 Mostrar los datos de los objetos ingresados de las clases

GUERRERO: Anotó 6 goles


VARGAS: Anotó 30 puntos

3
UNIVERSIDAD RICARDO PALMA TALLER DE PROGRAMACION I
Facultad de Ingeniería Prof. Juana Segura González
Escuela de Ingeniería Informática 2014-II

Ejemplo 4
Crear la clase Paciente que tiene como atributos codigo y días de internamiento, en esta clase el
contructor de Paciente asigna como valores iniciales al atributo código =”1111” y días de internamiento: 3

Sobrecargar el constructor de Paciente para que permita el ingreso de datos (código y días de
internamiento)
Derivar la clase Paciente_Asegurado de la clase Paciente y añadir el atributo aporte de tipo real.
Aporte es la cantidad en soles que un paciente asegurado paga mensualmente al seguro.
Asimismo sobrecargar el constructor de Paciente_Asegurado para que permita el ingreso de datos:
código y días de internamiento y aporte.
Incluir a Paciente_Asegurado el método muestraIngreso() que retorna un mensaje mostrando el
Ingreso total que recibirá el Paciente_Asegurado, sabiendo que por cada día de internamiento recibe
10 veces su aporte mensual.
Ingreso total= 10 * aporte * días de internamiento
a) Creación de la jerarquía de las clases y sus métodos correspondientes
b) Mostrar los datos de los objetos ingresados de las clases.

IV. ENUNCIADOS A RESOLVER:

1. Construir la clase Taxista que tenga un atributo que derive de la clase Persona que posee dos
atributos. Implemente constructores en ambas clases para mostrar los datos del taxista.

2. Crear una Clase cGato con atributo aPatas que derive de la cMamifero con atributo aNombre,
aColor. Mostrar las características del gato. Además agregar otra clase derivada cOso que también
muestre las características previamente ingresados, de dicho animal.

3. Elaborar un programa que permita definir un objeto Cilindro por herencia de Circulo que a su vez
hereda de la clase Punto:

4. Se pide desarrollar una aplicación para convertir una cantidad determinada de soles a moneda
dólares y euros. Los tipos de cambios son ingresados por la clase derivada. Imprima las
conversiones de monedas respectivamente.

5. Ingrese dos números reales diferentes de cero (si los números son ceros intentar ingresar
nuevamente, previo mensaje de error). Se pide ingresar los datos diferentes para cada operación e
imprimir el resultado de las 4 operaciones básicas implementando la propiedad de Herencia.

6. Desarrollar una solución para calcular la edad de una persona después de 10 años, implementado
la propiedad de herencia mostrar todos los datos y la edad proyectada.

También podría gustarte