Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen:
Trata de definir el cdigo de las clases, estableciendo las relaciones de herencia y uso entre ellas.
Trata de crear una clase con el mtodo main (TestHerencia4) donde de alguna manera crees
objetos de los distintos tipos y hagas uso de ellos, por ejemplo crea profesores interinos y
titulares y luego recrrelos con un for extendido donde el tipo sea Profesor (uso del
polimorfismo). Luego compralo con las explicaciones y soluciones que damos a continuacin.
En la solucin que hemos planteado nosotros, en el tipo Profesor hemos incluido un mtodo
denominado mostrarDatos() que muestra los datos propios de un objeto Profesor. Luego, en las
subclases ProfesorInterino y ProfesorTitular hemos sobreescrito el mtodo mostrarDatos() de
modo que en este caso nicamente muestra los datos especficos de los subtipos.
Por ltimo, en la clase ListinProfesores simulamos un listn que admite todo tipo de profesores
mediante un ArrayList que usa objetos de tipo Profesor, y que permite listar los profesores
mediante un mtodo listar() que lo que hace es invocar el mtodo mostrarDatos() de los objetos
contenidos en la lista. Si el mtodo utilizado se basara en el tipo declarado en el cdigo, listar()
siempre nos devolvera los datos de los objetos Profesor. Sin embargo, como veremos, esto no es
as: cuando la variable apunta a un subtipo, el mtodo invocado en tiempo de ejecucin es el
propio del subtipo, mientras que cuando la variable apunta a un tipo s se invoca el mtodo
propio del tipo. Por eso decimos que Java hace una bsqueda dinmica del mtodo: el mtodo
que se usa depende del tipo dinmico del objeto. Escribe este cdigo:
super();
IdProfesor = "Unknown";}
public Profesor (String nombre, String apellidos, int edad) {
super(nombre, apellidos, edad);
IdProfesor = "Unknown"; }
public void setIdProfesor (String IdProfesor) { this.IdProfesor = IdProfesor; }
public String getIdProfesor () { return IdProfesor; }
public void mostrarDatos() {
System.out.println ("Datos Profesor. Profesor de nombre: " + getNombre() + " " +
getApellidos() +
" con Id de profesor: " + getIdProfesor() ); }
} //Cierre de la clase ejemplo aprenderaprogramar.com
tmp.mostrarDatos(); }
} //Cierre mtodo
} //Cierre de la clase
En
la
clase
TestHerencia4
creamos
un
objeto
Profesor
un
objeto
Los objetos heredan los mtodos de abajo hacia arriba, es decir, siempre tienen
preferencia los mtodos sobreescritos. Java hace una bsqueda dinmica del mtodo
aplicable empezando por el ms prximo al tipo y escalando sucesivamente los
supertipos hasta encontrar un mtodo con la denominacin especificada.
Para acceder a la informacin general sobre este curso y al listado completo de entregas pulsa
en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a
cualquier persona independientemente de su nivel de conocimiento.