Está en la página 1de 5

Sper clases y subclases

En muchos casos, un objeto de una clase es un objeto de otra clase tambin.


Un rectngulo ciertamente es un cuadriltero (Un cuadriltero es un polgono
de cuatro lados). As pues, podemos decir que la clase rectngulo hereda de la
clase cuadriltero. En este contexto, la clase cuadriltero es una sper clase y
la clase rectngulo es una subclase. Un rectngulo es un tipo especfico de
cuadriltero, pero no es correcto asegurar que un cuadriltero es un rectngulo.
A continuacin, se muestran algunos ejemplos sencillos de herencia.

Superclase Subclases
Estudiante EstudianteGraduado
EstudianteDeLicenciatura
Figura Crculo
Trigulo
Rectngulo
Prstamo PrstamoParaAutomvil
PrstamoParaMejorarCasa
PrstamoHipotecario
Empleado Profesor
Asistente
Cuenta CuentaDeAhorros
CuentaCorriente

Dado que la herencia produce subclases con mas 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.

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.

Desarrollemos una jerarqua de herencia sencilla. 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.

Programacin Orientada a Objetos I I


Profesor: Julio Cesar Meza Ramrez
Observe que la jerarqua de herencia podra contener muchas otras clases. Por
ejemplo pueden ser de postgrado o de licenciatura. Hay abundantes ejemplos
de jerarquas en el mundo real, pero nosotros no estamos acostumbrados a
categorizar el mundo real de esta forma, por lo que necesitamos ajustar
nuestra forma de pensar. De hecho, las personas dedicadas al campo de la
biologa ya tienen cierta prctica con las jerarquas. Todo lo que estudiamos en
biologa se agrupo en una jerarqua encabezada por los seres vivos, los cuales
pueden ser plantas o animales, y as sucesivamente.

Si queremos especificar que la clase Empleado se deriva hereda de la clase


MiembroDeLaComunidad, la clase Empleado podra definirse en Java como
sigue:

class Empleado extends MiembroDeLaComunidad { }

Ejemplo:

A continuacin se muestra la forma de programar una herencia entre


superclases y subclases.

Desarrollando las clases del rbol jerrquico:

Programacin Orientada a Objetos I I


Profesor: Julio Cesar Meza Ramrez
Programamos la superclase: (CMiembro)

public class CMiembro {


String nombre;
int cedula;
int telefono;
public CMiembro() {
}

void crearMiembro(String nom, int ced, int tel){


nombre=nom;
cedula=ced;
telefono=tel;
}

Programacin Orientada a Objetos I I


Profesor: Julio Cesar Meza Ramrez
Ahora programamos la subclase CDocente que hereda de la superclase
CMiembro.

public class CDocente extends CMiembro {


int escalafon;
int cod_docente;
public CDocente() {
}

void crearDocente(int esc, int cod){


escalafon=esc;
cod_docente=cod;
}

Seguimos con la subclase CProfesores que hereda de la subclase CDocente


que a su vez hereda de la superclase CMiembro.

public class CProfesores extends CDocente {


String materia;
int grupo;
String jornada;
public CProfesores() {
}
void crearProfesor(String mat, int grup, String jor){
materia=mat;
grupo=grup;
jornada=jor;
}

Programacin Orientada a Objetos I I


Profesor: Julio Cesar Meza Ramrez
Despus de crear todas las clases, procedemos a crear los objetos desde la
clase main.

public class Main {

public Main() {
}

public static void main(String[] args) {

//crear miembro
CMiembro objMiembro=new CMiembro();
objMiembro.crearMiembro("Maria", 4564, 4588);
System.out.println(""+objMiembro.nombre);

// crear docente
CDocente objDocente=new CDocente();
objDocente.crearMiembro("Carlos", 30298675, 3014567);
objDocente.crearDocente(10,567);
System.out.println(""+objDocente.nombre);

//crear profesor
CProfesores objProfesor=new CProfesores();
objProfesor.crearMiembro("Andres", 34556, 311603);
objProfesor.crearDocente(12, 568);
objProfesor.crearProfesor("Programacin", 2, "Diurna");
System.out.print(""+objProfesor.nombre);
}

Taller en clase:

Segn el rbol jerrquico descrito anteriormente, disear las clases restantes y


realizar su codificacin.

Programacin Orientada a Objetos I I


Profesor: Julio Cesar Meza Ramrez

También podría gustarte