Sei sulla pagina 1di 10

Describe un ejemplo de los conceptos de subclases, superclases, jerarqua de la

herencia, interfaces, clases, mtodos abstractos y finales, sobrecarga de mtodos y


operadores.
Ejemplo de superclase y subclase

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.

public interface miembroUniversidad {

public abstract void run();

Las clases que implementen (implements) el interface miembroUniversidad


han de definir obligatoriamente la funcin run.

class Animacion implements miembroUniversidad{

//..

public void run(){

//define la funcin 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:

abstract void moveTo(double deltaX, double deltaY);


Si una clase incluye mtodos abstractos, la clase misma debe declararse abstract.
Tomemos la subclase miembroUniversidad de la primera tabla superclases y subclases
para el ejemplo:
public abstract class miembroUniversidad {

// declarar campos

// declarar mtodos no abstractos

abstract void matricula();

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 {

protected int id;

protected String nombre;

protected String apellidos;

protected int edad;

// constructores, getter y setter

public void viajar() {

System.out.println("Viajar (Clase Padre)");

public void concentrarse() {

System.out.println("Concentrarse (Clase Padre)");

// IMPORTANTE -> METODO ABSTRACTO => no se implementa en la clase abstracta pero si


en la clases hijas

public abstract void entrenamiento();

public void partidoFutbol() {

System.out.println("Asiste al Partido de Ftbol (Clase Padre)");

public class Futbolista extends SeleccionFutbol {

private int dorsal;

private String demarcacion;

// constructor, getter y setter

@Override

public void entrenamiento() {

System.out.println("Realiza un entrenamiento (Clase Futbolista)");

@Override

public void partidoFutbol() {

System.out.println("Juega un Partido (Clase Futbolista)");

public void entrevista() {

System.out.println("Da una Entrevista");


}

public class Entrenador extends SeleccionFutbol {

private int idFederacion;

// constructor, getter y setter

@Override

public void entrenamiento() {

System.out.println("Dirige un entrenamiento (Clase Entrenador)");

@Override

public void partidoFutbol() {

System.out.println("Dirige un Partido (Clase Entrenador)");

public void planificarEntrenamiento() {

System.out.println("Planificar un Entrenamiento");

public class Masajista extends SeleccionFutbol {

private String titulacion;

private int aniosExperiencia;

// constructor, getter y setter

@Override

public void entrenamiento() {

System.out.println("Da asistencia en el entrenamiento (Clase Masajista)");

public void darMasaje() {


System.out.println("Da un Masaje");

public class Main {

// ArrayList de objetos SeleccionFutbol. Idenpendientemente de la clase hija a la


que pertenezca el objeto

public static ArrayList<SeleccionFutbol> integrantes = new


ArrayList<SeleccionFutbol>();

public static void main(String[] args) {

SeleccionFutbol delBosque = new Entrenador(1, "Vicente", "Del Bosque", 60,


28489);

SeleccionFutbol iniesta = new Futbolista(2, "Andres", "Iniesta", 29, 6,


"Interior Derecho");

SeleccionFutbol raulMartinez = new Masajista(3, "Ral", "Martinez", 41,


"Licenciado en Fisioterapia", 18);

integrantes.add(delBosque);

integrantes.add(iniesta);

integrantes.add(raulMartinez);

// CONCENTRACION

System.out.println("Todos los integrantes comienzan una concentracion. (Todos


ejecutan el mismo mtodo)");

for (SeleccionFutbol integrante : integrantes) {

System.out.print(integrante.getNombre() + " " +


integrante.getApellidos() + " -> ");

integrante.concentrarse();

// VIAJE

System.out.println("nTodos los integrantes viajan para jugar un partido.


(Todos ejecutan el mismo mtodo)");

for (SeleccionFutbol integrante : integrantes) {

System.out.print(integrante.getNombre() + " " +


integrante.getApellidos() + " -> ");

integrante.viajar();

}
.........

........

// ENTRENAMIENTO

System.out.println("nEntrenamiento: Todos los integrantes tienen su funcin en un


entrenamiento (Especializacin)");

for (SeleccionFutbol integrante : integrantes) {

System.out.print(integrante.getNombre() + " " + integrante.getApellidos() + " -> ");

integrante.entrenamiento();

// PARTIDO DE FUTBOL

System.out.println("nPartido de Ftbol: Todos los integrantes tienen su funcin en un


partido (Especializacin)");

for (SeleccionFutbol integrante : integrantes) {

System.out.print(integrante.getNombre() + " " + integrante.getApellidos() + " -> ");

integrante.partidoFutbol();

........

// PLANIFICAR ENTRENAMIENTO

System.out.println("nPlanificar Entrenamiento: Solo el entrenador tiene el mtodo para


planificar un entrenamiento:");

System.out.print(delBosque.getNombre() + " " + delBosque.getApellidos() + " -> ");

((Entrenador) delBosque).planificarEntrenamiento();

// ENTREVISTA

System.out.println("nEntrevista: Solo el futbolista tiene el mtodo para dar una


entrevista:");

System.out.print(iniesta.getNombre() + " " + iniesta.getApellidos() + " -> ");

((Futbolista) iniesta).entrevista();

// MASAJE

System.out.println("nMasaje: Solo el masajista tiene el mtodo para dar un masaje:");

System.out.print(raulMartinez.getNombre() + " " + raulMartinez.getApellidos() + " -> ");

((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.

Cmo se relacionan la herencia y polimorfismo en tu ejemplo?


En este caso la herencia inicia desde la superclase llamada
escuelaDeVuelo.
Despus aparecen las subclases cusropilotoprivado, cursopilotocomercisl
y as mismo se van derivando las subclases instructordevueloPP,
instructordevueloPC, rollDeVuelo, alumnopilotoprivado y
alumnoprilotocomercial
El polimorfismo se da al momento de ejecutar los mtodos Mostrar
Datos del Viaje en cada una de las subclases sealadas en el punto
anterior.
Conclusiones
Esta actividad, me ha sido de suma utilidad ya que yo conozco lo que es clase, herencia,
polimorfismo, jerarqua etc. Pero tena muy dispersa la organizacin de los mismos; de
hecho en ms de una ocasin llegu a tener problemas con el tema por cuestiones de
falta de estructura y despus de hacer este ejercicio me siento mejor preparado para
llevar a cabo este tipo de organizacin de POO.
ESCALA DE EVALUACIN

Carrera: Desarrollo de Software Muy bien: de 81 a 100 puntos.


Semestre : Tercero Bien: de 61 a 80 puntos.
Asignatura Programacin orientada a objetos I Regular: de 41 a 60 puntos.
: Necesitas mejorar: de 21 a 40 puntos.
Unidad: 3 Insuficiente: de 1 a 20 puntos.
Actividad: 1. Herencia y polimorfismo Fase 1 No present: 0 puntos.
.

Punta Puntaje Observaciones


je por obtenid
criter o
io
ormacin est relacionada con los conceptos indicados 15

ribe ejemplos de los conceptos del punto 1 15

opuesta a desarrollar es clara, se describe con amplitud y 15


mbigedades
propuesta se describe la clase, subclase y superclase a 15
ear
niza la jerarqua de herencia, respecto al planteamiento, 15
ante una representacin grafica
ipa en el foro con sus compaeros, aceptando o 15
zando algunos conceptos, o retroalimentado sus ideas
pales.
ratula o presentacin muestra informacin completa del 10
, actividad, alumno, docente. Incluye rubrica o lista de
o.
tal 100

Potrebbero piacerti anche