Avances tecnológicos del siglo XXI y ejemplos de estos
Herencia
1. REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA
LA EDUCACION SUPERIOR
UNIVERSITARIA
MARACAIBO, ESTADO ZULIA
Realizado Por:
Thais Noguera
C.I: 16.515.129
Punto Fijo, Enero 2016
HERENCIA Y POLIMORFISMO
EN JAVA
2. Herencia
Herencia es un mecanismo que permite la definición de una clase a partir de la definición de
otra ya existente. La herencia permite compartir automáticamente métodos y datos entre
clases, subclases y objetos.
La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el
código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada
de ella, o bien una subclase.
La Herencia es uno de los 4 pilares de la programación orientada a objetos (POO) junto con
la Abstracción, Encapsulación y Polimorfismo. Al principio cuesta un poco entender estos
conceptos característicos del paradigma de la POO porque solemos venir de otro paradigma
de programación como el paradigma de la programación estructurada (ver la entrada
“ Paradigmas de Programación), pero se ha de decir que la complejidad está en entender
este nuevo paradigma y no en otra cosa
Hay dos tipos de herencia:
Herencia Simple
Indica que se pueden definir nuevas clases solamente a partir de una clase inicial
Herencia Múltiple
Indica que se pueden definir nuevas clases a partir de dos o más clases iníciales. Java sólo
permite herencia simple.
3. EJEMPLOS DE HERENCIA
//Código de la clase Persona ejemplo aprenderaprogramar.com
public class Persona {
private String nombre;
private String apellidos;
private int edad;
//Constructor
public Persona (String nombre, String apellidos, int edad) {
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad; }
//Métodos
public String getNombre () { return nombre; }
public String getApellidos () { return apellidos; }
public int getEdad () { return edad; }
} //Cierre de la clase
4. Polimorfismo
El Polimorfismo es uno de los 4 pilares de la programación orientada a objetos (POO) junto
con la Abstracción, Encapsulación y Herencia. Para entender que es el polimorfismo es
muy importante que tengáis bastante claro el concepto de la Herencia.
Se ha de decir que el término “Polimorfismo” es una palabra de origen griego que significa
“muchas formas”. Este termino se utiliza en la POO para “referirse a la propiedad por la que
es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos“.
Cualquier objeto java que pueda pasar más de un test "ES-UN" es considerado polimórfico.
En Java, todos los objetos son polimórficos ya que cualquier objeto pasaría un test "ES-UN"
dado que son de su propio tipo, además del de la clase Object.
Es importante saber que la única manera de acceder a un objeto es a través de una
variable de referencia. La variable de referencia sólo puede ser de un tipo. Una vez
declarado el tipo de la variable de referencia, no se puede cambiar.
La variable de referencia puede ser reasignada a otros objetos, siempre y cuando no haya
sido declarada "final". El tipo de la variable de referencia, determina los métodos que
podrán ser llamados sobre el objeto.
Una variable de referencia puede hacer referencia a cualquier objeto o cualquier subtipo de
su propio tipo
5. Ejemplo
Queremos simular el comportamiento que tendrían los diferentes integrantes de la
selección española de fútbol; tanto los Futbolistas como el cuerpo técnico (Entrenadores,
Masajistas, etc…). Para este ejemplo nos vamos
a basar en el siguiente diagrama de clases:
6. En este diagrama y en adelante no vamos a poner los constructores y métodos getter y
setter con el fin de que el diagrama nos quede grande e “intendible” aunque en un buen
diagrama de clases deberían aparecer para respetar el principio de encapsulación de la
POO.
Ejemplo
En este ejemplo vamos a tener una clase padre (SelecciónFutbol) en la que tendremos los
atributos y métodos comunes a todos los integrantes que forman la selección española de
fútbol (Futbolistas, Entrenadores, Masajistas, etc.) y en ella se van a implementar los
métodos del comportamiento “genérico” que deben de tener todos los integrantes de la
selección. Como ya dijimos en la entrada de la herencia, la herencia no es más que sacar
“factor común” del código que escribimos, así que los atributos y métodos de la clase
SeleccionFutbol los tendrán también los objetos de las clases Futbolista, Entrenador y
Masajista. Antes de seguir vamos a mostrar el código de la clase “SeleccionFutbol” para
ver algunas peculiaridades: