Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Superclase Subclase
miembroUniversidad Estudiante
Ex_alumno
docente
empleado
Dado que la herencia produce subclases con ms caractersticas que sus superclases, los
trminos superclase y subclase pueden dar pie a confusiones. Sin embargo, hay otra
forma de considerar estos trminos que es muy lgica. Como cada objeto de una
subclase es un objeto de una superclase, y dado que la que una superclase puede tener
muchas subclases, el conjunto de objetos representado por una superclase normalmente
es ms grande que el conjunto de objetos representado por cualquiera de las subclases
de esa superclase.
Jerarqua
Las relaciones de herencia forman estructuras jerrquicas similares a un rbol. Una
superclase existe en una relacin jerrquica con sus subclases. Sin duda, una clase
puede existir sola, pero es cuando se emplea con el mecanismo de herencia que se
convierte ya sea en una superclase que proporciona atributos y comportamientos a otras
clases, o en una subclase que hereda dichos atributos y comportamientos.
Como ejemplo podemos utilizar el siguiente:
Una comunidad universitaria tpica comprende miles de personas que son miembros de la
comunidad. Estas personas consisten en empleados, estudiantes y exalumnos. Los
empleados son docentes o bien personar auxiliar. Los miembros docentes pueden ser
administradores (como el rector y los directores de departamentos) o profesores. Esto
produce la siguiente jerarqua de herencia.
Interfaces
Un interface es una coleccin de declaraciones de mtodos (sin definirlos) y tambin
puede incluir constantes.
Es un ejemplo de interface en el cual se declara, pero no se implementa, una funcin
miembro run.
//..
El papel del interface es el de describir algunas de las caractersticas de una clase. Por
ejemplo, el hecho de que una persona sea un futbolista no define su personalidad
completa, pero hace que tenga ciertas caractersticas que las distinguen de otras.
Clases que no estn relacionadas pueden implementar el interface miembroUniversidad,
por ejemplo, una clase que describa una animacin, y tambin puede implementar el
interface miembroUniversidad una clase que realice un clculo intensivo.
Clase Abstracta
Una clase abstracta es una clase que se declara abstractpuede o no puede incluir
mtodos abstractos. Las clases abstractas no pueden instanciarse, pero pueden usarse
para una subclase.
Un mtodo abstracto es un mtodo que se declara sin una implementacin (sin corchetes,
y seguido por un punto y coma), as:
// declarar campos
Finales
Podemos tomar otro ejemplo de la primera tabla con la subclase estudiantePosGrado a la
cual le vamos a agregar la subclase cursoAprobado. cursoAprobado no nos interesa que
haga nada ms por lo que declaramos a la clase como final de la siguiente manera:
final class cursoAprobado extends estudiante{
public cursoAprobado(int calificacion, int promedio, aprobado){
super(calificacion, promedio, aprobado);
}
}
Sobrecarga
La firma de un mtodo es la combinacin del tipo de dato que regresa, su nombre y su
lista de argumentos.
La sobrecarga de mtodos es la creacin de varios mtodos con el mismo nombre pero
con diferentes firmas y definiciones. Java utiliza el nmero y tipo de argumentos para
seleccionar cul definicin de mtodo ejecutar.
Java diferencia los mtodos sobrecargados con base en el nmero y tipo de argumentos
que tiene el mtodo y no por el tipo que devuelve.
Tambin existe la sobrecarga de constructores: Cuando en una clase existen
constructores mltiples, se dice que hay sobrecarga de constructores.
/* Mtodos sobrecargados */
int miembroUniversidad(int calificacion, int promedio){
...
}
int miembroUniversidad(double puntoExtra, double tareas){
...
}
Investiga un caso donde se utilicen la herencia y polimorfismo.
public abstract class SeleccionFutbol {
@Override
@Override
@Override
@Override
System.out.println("Planificar un Entrenamiento");
@Override
integrantes.add(delBosque);
integrantes.add(iniesta);
integrantes.add(raulMartinez);
// CONCENTRACION
integrante.concentrarse();
// VIAJE
integrante.viajar();
}
.........
........
// ENTRENAMIENTO
integrante.entrenamiento();
// PARTIDO DE FUTBOL
integrante.partidoFutbol();
........
// PLANIFICAR ENTRENAMIENTO
((Entrenador) delBosque).planificarEntrenamiento();
// ENTREVISTA
((Futbolista) iniesta).entrevista();
// MASAJE
((Masajista) raulMartinez).darMasaje();
........
Realiza una propuesta, la cual se desarrollara en las prximas actividades, en
donde puedas implementar los conceptos de los puntos 1 y 2.