Este documento presenta un ejercicio de programación orientada a objetos que involucra la herencia y el polimorfismo. Se pide crear una jerarquía de clases para modelar loros, profesores y alumnos, donde cada clase herede de la clase Loro y contenga un método habla(). Se provee el código completo de la solución con las clases Loro, Alumno y Profesor.
2. En esta ocasión bienvenido a otro ejercicio del
Hola compañero,analizaremos otro ejercicio de
Pon tención al siguiente enunciado…
Polimorfismo.
tutorial de POO.
3. En esta ocasión analizaremos otro ejercicio de
Pon tención al siguiente enunciado…
Polimorfismo.
5. Elaborar una jerarquía de herencia que modele los seres vivos
capaces de hablar. Las clases deben modelar al menos a los
loros, los profesores y los alumnos. Todas las clases elaboradas
deben disponer de un método habla sin argumentos que
proporcione una salida por pantalla similar a la siguiente:
Hola, me llamo Pedro y se hablar.
Soy racional.
Tengo 40 años.
Nací el 1 de enero de 1965
Soy profesor.
Para que el ejercicio sea interesante es necesario que todos los
objetos habladores tengan un conjunto de características que les
diferencian de los demás, por ejemplo, que los loros no
seanconscientes de su edad o su fecha de nacimiento.
6. Comencemos definiendo la clase
Principal2. Este ejercicio recibirá
A continuación, definiremos los
datos por consola así que
atributos necesarios e
imprimiremos algunos letreros en
importaremos la librería
pantalla para mostrarpartir de la
java.util.Scanner a un menú de
cual crearemos un objeto de tipo
selección.
Scanner.
7. Comencemos definiendo la clase
Principal2. Este ejercicio recibirá
A continuación, definiremos los
datos por consola así que
atributos necesarios e
imprimiremos algunos letreros en
importaremos la librería
pantalla para mostrarpartir de la
java.util.Scanner a un menú de
cual crearemos un objeto de tipo
selección.
Scanner.
//CLASE PRINCIPAL
import java.util.Scanner;
public class Principal2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
8. A continuación, definiremos los
atributos necesarios e
imprimiremos algunos letreros en
pantalla para mostrar un menú de
selección.
//CLASE PRINCIPAL
import java.util.Scanner;
public class Principal2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
9. A continuación, definiremos los
atributos necesarios e
imprimiremos algunos letreros en
pantalla para mostrar un menú de
selección.
//CLASE PRINCIPAL
import java.util.Scanner;
public class Principal2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int edad;
String nombre;
int año_nac;
String profesion;
int opc;
for(;;){
System.out.println("nn1: loro ");
System.out.println("2: alumno ");
System.out.println("3: profesor ");
System.out.println("4: salir ");
System.out.println("ntingrese opcion");
10. Y realizamos las operaciones
Capturamos la selección
necesarias según la misma.
13. opc=sc.nextInt();
Y realizamos las operaciones
necesarias según la misma.
switch(opc)
{
case 1: loro l=new loro();
System.out.print(l.mostrar());break;
case 2: Alumno al=new
Alumno(12,"david",1999);
System.out.print(al.mostrar1());break;
case 3: Profesor prof=new
Profesor(34,"marco",1993,"profesor");
System.out.print(prof.mostrar2());break;
case 4:System.exit(0);
default : System.out.print("opcion
incorrecta");break;
}}}}
14. Solo definiremos el método
A continuación vamos a crear la
mostrar que es común para todas
clase padre Loro.
las clases involucradas.
15. Solo definiremos el método
mostrar que es común para todas
las clases involucradas.
16. Solo definiremos el método
mostrar que es común para todas
las clases involucradas.
//CLASE LORO
public class loro {
public String mostrar()
{
return "hablarn";
}
}
18. Declaremos un constructor que
Cada alumno tendrá como
inicialice los atributos
Ahora definamosnombre y fecha
atributos edad, la clase Alumno.
correspondientes. Nota el uso de
de nacimiento.
super().
19. Declaremos un constructor que
Cada alumno tendrá como
inicialice los atributos
Ahora definamosnombre y fecha
atributos edad, la clase Alumno.
correspondientes. Nota el uso de
de nacimiento.
super().
//CLASE ALUMNO
public class Alumno extends loro{
int edad;
String nombre;
int fecha_nacimiento;
20. Declaremos un constructor que
inicialice los atributos
Ahora definamos la clase Alumno.
correspondientes. Nota el uso de
super().
//CLASE ALUMNO
public class Alumno extends loro{
int edad;
String nombre;
int fecha_nacimiento;
21. Declaremos un constructor que
inicialice los atributos
Ahora definamos la clase Alumno.
correspondientes. Nota el uso de
super().
//CLASE ALUMNO
public class Alumno extends loro{
int edad;
String nombre;
int fecha_nacimiento;
public Alumno(int edad,String nombre,int
fecha_nacimiento)
{
super();
this.nombre=nombre;
this.edad=edad;
this.fecha_nacimiento=fecha_nacimiento;
}
23. Finalmente definiremos un método
para imprimir los datos del alumno
en pantalla.
public String mostrar1()
{
return "hola soy "+nombre+" y se
"+super.mostrar()+"nsoy racional"+"ntengo
"+edad+"años"+"nnaci en año :
"+fecha_nacimiento;
}
}
24. Listo ya tenemos las clases Loro y
También es necesario definir un
Alumno, solo falta Profesor. Para
constructor que nos permita
esta clase vamos a considerar los
inicializar los atributos
atributos profesión, edad, nombre
correspondientes.
y fecha de nacimiento.
25. Listo ya tenemos las clases Loro y
También es necesario definir un
Alumno, solo falta Profesor. Para
constructor que nos permita
esta clase vamos a considerar los
inicializar los atributos
atributos profesión, edad, nombre
correspondientes.
y fecha de nacimiento.
//CLASE PROFESOR
public class Profesor extends loro{
String profesion;
int edad;
String nombre;
int fecha_nacimiento;
26. También es necesario definir un
constructor que nos permita
inicializar los atributos
correspondientes.
//CLASE PROFESOR
public class Profesor extends loro{
String profesion;
int edad;
String nombre;
int fecha_nacimiento;
27. También es necesario definir un
constructor que nos permita
inicializar los atributos
correspondientes.
//CLASE PROFESOR
public class Profesor extends loro{
String profesion;
int edad;
String nombre;
int fecha_nacimiento;
public Profesor(int edad,String nombre,int
fecha_nacimiento,String profesion)
{
super();
this.nombre=nombre;
this.edad=edad;
this.fecha_nacimiento=fecha_nacimiento;
this.profesion=profesion;
}
29. Por último tendremos un método
para mostrar datos en pantalla.
public String mostrar2()
{
return "hola soy "+nombre+" y se
"+super.mostrar()+"nsoy racional"+"ntengo
"+edad+"años"+"nnaci en año :
"+fecha_nacimiento+"nsoy "+profesion;
}
}
31. Bueno compañero, esto fue todo
por Nos vemos en que la solución
ahora, espero el siguiente
de ejercicio. Hasta pronto.
este ejercicio te haya sido
clara y provechosa.
32. Nos vemos en el siguiente
ejercicio. Hasta pronto.