Documente Academic
Documente Profesional
Documente Cultură
Existen dos tipos de herencia sencilla y múltiple. Sencilla significa que sólo
heredamos de una clase base, mientras que múltiple indica que tenemos varias clases
base (por ejemplo un hidroavión
hereda de barco y de avión). Java
sólo soporta herencia simple.
Cuando se hereda nos encontramos frente a un pequeño problema: ¿Qué sucede cuando
se hereda un método de la clase base, el cuál estamos redefiniendo en la clase derivada?
Esto es un caso de sobrescritura de métodos. La solución es simple, cuando estemos
ejecutando el método de un objeto derivado se llamará al método de su propia clase, es
decir el redefinido. Si lo que se quiere es emplear el método de la clase base, hay que
emplear una técnica que consiste en usar: super.método().
Llamaremos a la descripción interfaz, y los objetos que cumplen ese interfaz (es decir,
tienen todas las funciones que definen el interfaz) diremos que implementan el
interfaz. Pensemos ahora en el hecho que una persona que sabe iniciar una
reproducción de un CD también sabe iniciar una reproducción de vídeo, en ambos casos
debe de encender el objeto, iniciar la reproducción, parar la reproducción y apagar el
reproductor. Eso significa que para la persona es transparente el tipo (clase) real del
objeto reproductor que posea, ya que la persona sabe que puede ponerlo en marcha,
apagarlo, sin necesidad de conocer la clase real, tan sólo debe de saber que es un objeto
del tipo reproductor.
-1-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
Por ejemplo:
Creemos la Clase Animal, que cumplirá con la función de ser una clase Padre; los
atributos de la clase son:
Raza String
Nombre String
Edad int
Como vemos esta clase Animal, contiene atributos que quizás cualquier animal en
particular debe de tener. Ahora crearemos una clase hijo, por ejemplo llamemos a esta
nueva clase Perro.
Esta clase Perro, debe contener los mismos atributos de cualquier animal así como raza,
nombre, edad y quizás otros atributos muy particulares a un perro.
Entonces haremos que los atributos de la clase padre Animal se los herede a la clase hijo
Perro, esto se logra haciendo uso de una palabra reservada por JAVA que es “extends”,
veamos como es la sintaxis de la clase hijo una vez que deseamos que herede los
atributos del padre: en la misma clase perro agregaremos lo siguiente:
-2-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
Paso 3: Creamos su métodos set y get para cada atributo, esto se puede crear
manualmente o sino usando el asistente que nos brinda Java Virtual Machine, donde
se procede de la siguiente manera: No ubicamos en cualquier parte de la hoja de
código, damos clic derecho y buscamos – Refactor Encapsulate fields, tal como
se muestra en la siguiente figura:
-3-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
Luego nos aparecerá el siguiente asistente, donde le daremos check a cada uno, para
que nos genere automáticamente los métodos set y get para cada atributo, sin
necesidad de escribirlos manualmente:
-4-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
Lo segundo es sobre los métodos set y get que también se le conoces como métodos
accesores, esto por defecto siempre son de tipo publico. Si modificar nada damos clic en
refactor y vemos que pasa con nuestro código:
se puede apreciar algo nuevo en el código, fíjense los atributos todos se volvieron
privados y los métodos set y get son del tipo publico.
- Luego vemos en el código que se nos presenta una palabra nueva que es el this, esta
palabra la usamos cuando tenemos igualdad de nombres en los atributos, así como se
presento líneas arriba:
Es de mucha utilidad esta palabra, ya que nos sirve como un buscador de atributos o
métodos, si es que no recordamos el nombre de estos.
Puede haber 3 formas de poder asignar estos atributos usando o sin usar la palabra this,
recordando que esta palabra es una especie de buscador. El cual nos ayudara a
diferenciar nuestros atributos de clase.
Observemos aquí después de la palabra set sigue el nombre del atributo de la clase pero
en mayúscula, y aquí viene una nueva regla cada atributo o variable debe empezar
siempre con letras minúsculas.
Para evitar estos posibles errores se hace uso del this, después de poner un punto
podemos llamar al setCodigo rápidamente de la siguiente forma:
-6-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
this.setCodigo(codigo);
FORMA 3: Cuando los atributos de la clase del método son distintos; en esta ocasión
no es necesario utilizar el this.
Aquí se puede observar mejor el orden en que se asigna las variables, en primer lugar va
el atributo de la clase y luego el atributo del método, .
PASO 5. Y por ultimo para terminar con esta clase padre, crearemos un método
que contenga todas las impresiones de los atributos, esto se hace tal como sigue:
Por ultimo hay que hacer una observación que se puede utilizar el get o simplemente
el nombre del atributo de la clase, o también ayudado del buscador this.
Y con esto terminamos con la clase persona, los siguientes pasos se trataran de clase
hijos el cual heredaran los atributos de la clase padre Persona.
PASO 6. Crearemos una clase hijo de nombre Alumno, el cual deberá heredar los
atributos del padre.
-7-
Universidad Tecnológica del Perú Aleksandr Paúl Quito Pérez
Lenguaje de Programación I Herencias
PASO 7. Como ultimo paso crearemos una clase Hprueba con método main para
correr nuestra aplicación:
Crearemos un objeto “a1” de la clase Alumno. Mucha atención aquí, que vamos a
llamar a los atributos que Alumno heredo de la clase Persona.
Luego del objeto “a1” llamaremos al método que esta en el padre de la clase persona
Una ves asignados los datos correspondientes y llamando al método listar datos el cual
nos permite imprimir los datos que queremos, nuestro código seria el siguiente:
Como podemos apreciar la clase hijo Alumno heredo todos los atributos de la clase
padre Persona.
-8-