Anda di halaman 1dari 4

HERENCIA Y POLIMORFISMO

PROBLEMA:
Implementar polimorfismo a la jerarqua de herencia ya realizada
anteriormente mediante el uso de array o ArrayList.
DESCRIPCION DE LA ESTRATEGIA O SOLUCIN:
Sobre una clase llamada Deportista cuyas subclases inmediatas son
DeporteBalompie y ArtesMarciales que a su vez heredan a sus subclases
llamadas Futbol, FutbolSalon. MuayThai y Karate respectivamente.
Aplicaremos conceptos de polimorfismo y herencia.
La clase Deportista (abstracta) posee dos mtodos que se sobre-escriben en
las clases hijas las cuales son mostrarInformacion y hacerDeporte.
Crearemos una clase Array llamado lista que ser capaz de contener
referencias a objetos de clase Deportista, incluiremos el mtodo respectivo
para agregar nuevos objetos adems de tambin de hacer un recorrido para
mostrar lo que los objetos pueden hacer.
Tambien crearemos un mtodo main para usar y demostrar sobrecarga y
referencia polimrfica aadiendo objetos a nuestro array ya definido en una
clase llamada lista.
DIAGRAMA DE CLASES

CODIGO
public abstract class Deportista
{
protected String nombreDeportista;
protected String nombreDeporte;
public Deportista(String nombre, String deporte){
nombreDeportista = nombre;
nombreDeporte = deporte;
}
public void getInformacion(){

System.out.println("Nombre del deportista: "+ nombreDeportista);


System.out.println("Nombre deporte: "+ nombreDeporte);
}
abstract public void hacerDeporte();
}
----------------------------------------------------------------------------------------------------------------------------public abstract class DeporteBalonpie extends Deportista
{
protected int dorsal;
protected String posicion;
public DeporteBalonpie(String nombre, String deporte, int dorsal, String
posicion){
super(nombre, deporte);
this.dorsal = dorsal;
this.posicion = posicion;
}
public void getInformacion(){
System.out.println("--------------------------");
System.out.println("Categoria Deportista: BALOMPIE");
super.getInformacion();
System.out.println("Numero de Dorsal: "+ dorsal);
System.out.println("Posicion en el juego: "+ posicion);
}
abstract public void hacerDeporte();
}
----------------------------------------------------------------------------------------------------------------------------public abstract class ArtesMarciales extends Deportista
{
protected String Categoria;
public ArtesMarciales(String nombre, String deporte, String categoria){
super(nombre, deporte);
Categoria = categoria;
}
public void getInformacion(){
System.out.println("-----------------------------------");
System.out.println("Deportista Categoria : ARTES MARCIALES");
super.getInformacion();
System.out.println("Categoria a la que Pertenece " + Categoria);
}
abstract public void hacerDeporte();
}
----------------------------------------------------------------------------------------------------------------------------public class Futbol extends DeporteBalonpie
{
protected String equipoActual;
public Futbol(String nombre, int dorsal, String posicion, String equipo){

super(nombre, "FUTBOL", dorsal, posicion);


equipoActual = equipo;
}
public void getInformacion(){
super.getInformacion();
System.out.println("Equipo actual: "+ equipoActual);
}
public void hacerDeporte(){
System.out.println("ESTOY JUGANDO FUTBOL");
}
}
----------------------------------------------------------------------------------------------------------------------------public class Futsal extends DeporteBalonpie
{
public Futsal(String nombre, int dorsal, String posicion){
super(nombre, "FUTSAL", dorsal, posicion);
}
public void hacerDeporte(){
System.out.println("ESTOY JUGANDO FUTSAL");
}
}
----------------------------------------------------------------------------------------------------------------------------public class MuayThai extends ArtesMarciales
{
public MuayThai(String nombre, String grado){
super(nombre, "MUAY-THAI", grado);
}
public void hacerDeporte(){
System.out.println("ESTOY PRACTICANDO MUAY-THAI");
}
}
----------------------------------------------------------------------------------------------------------------------------public class Karate extends ArtesMarciales
{
public Karate(String nombre, String grado){
super(nombre, "KARATE", grado);
}
public void hacerDeporte(){
System.out.println("ESTOY PRACTICANDO KARATE");
}
}
----------------------------------------------------------------------------------------------------------------------------public class ListaDeportistas
{

private Deportista lista[];


public ListaDeportistas(int n){
lista = new Deportista[n];
}
public void addDeportista(Deportista dep, int n){
lista[n] = dep;
}
public void mostrarLista(){
for(Deportista i: lista){
i.getInformacion();
i.hacerDeporte();
}
}
}
----------------------------------------------------------------------------------------------------------------------------public class TestMain
{
public static void main(String[]Args){
ListaDeportistas listas = new ListaDeportistas(4);
Deportista d;
d= new Futbol("Juan Perez", 10, "Centrocampista", "FC BARCELONA");
listas.addDeportista (d,0);
d = new Futsal("Etoo", 1, "Guardameta");
listas.addDeportista (d,1);
d = new MuayThai("Bruce lee", "MAESTRO");
listas.addDeportista (d,2);
d = new Karate("Chuck Norris", "APRENDIZ");
listas.addDeportista (d,3);
listas.mostrarLista();
}
}
-----------------------------------------------------------------------------------------------------------------------------

Anda mungkin juga menyukai