INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre
Guía de aplicación N° 14 y 15 Programación Orientada a Objetos Herencia y Polimorfismo I.
FECHA
II.
COMPETENCIAS A CONSEGUIR : Conoce la Programación orientada a Objetos. Aplica la Herencia y polimorfismo en CLases
• •
: 28 de Agosto del 2013
III. Fundamento Teórico.- En el mundo real la herencia la podríamos representar con el siguiente diagrama. Cosa
Medio de Telecomunicación Medio de Transporte
Objeto de Oficina Coche Vehículo Aéreo
Concepto de Herencia Los objetos se definen como miembros de clases. Conociendo la clase de un objeto se puede tener mucha información sobre el mismo. En programación orientada a objetos se pueden definir clases (Subclases) en términos de otras clases (Superclase). 1 Toda subclase hereda el estado (en la forma de declaración de variables) y los métodos de la superclase. Sin embargo, 1
http://es.scribd.com/doc/6724689/Clase-Herencia-y-Polimorfismo Ing. Godofredo Poccori Umeres gpoccori@khipu.edu.pe
1/6
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre
las subclases no están limitadas al estado y comportamiento de su superclase. Las subclases pueden añadir nuevas variables miembros y nuevos métodos a los heredados de la superclase y dar implementaciones particulares para los métodos heredados anulando la definición original de los métodos dad por la superclase.
HERENCIA EN JAVA
•
Java permite definir una Clase Padre subclase de una clase padre
clase
como
public class clase_hija extends clase_padre { <instrucciones> }
Clase Hija
Ejemplo de Herencia
Ejercicios de Aplicación Ejercicio N° 1. Elaborar un programa para implementar la Clase Persona y la clase Alumno, el cual herede los atributos de la clase Persona.
Clase CPersona package herencia; /** Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
2/6
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre * @author Godofredo Poccori Umeres */ public class Persona { String Nombre; String Direccion; String Edad; //---constructor public Persona(String Nombre,String Direccion, String Edad) { this.Nombre=Nombre; this.Direccion=Direccion; this.Edad=Edad; } //---Metodos public String Mostrar() { return "El nombre es: "+Nombre+"\nLa direccion es: "+Direccion+"\nLa edad es: "+Edad; } } Clase Alumno package herencia; /** * @author Godofredo Poccori Umeres */ public class Alumno extends Persona { String Carrera; public Alumno(String Nombre,String Direccion, String Edad,String Carrera) { super(Nombre,Direccion,Edad); this.Carrera=Carrera; } public String Mostrar() { return super.Mostrar()+"\nLa carrera es: "+Carrera; } } Clase Principal package herencia; /** * @author Godofredo Poccori Umeres */ public class Main { public static void main(String[] args) { Alumno Al=new Alumno("Farid","Av. Luis Vallejos","15","Informatica"); System.out.println(Al.Mostrar()); } } Resultados Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
3/6
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre
Vista Genérica:
V Actividades en clase 5.1 Usando la clase Persona y Alumno, adicione al código anterior una clase llamada docente con los siguientes atributos Nombre, Direccion, Edad, y Area a la que pertenece, sabiendo que existe las áreas de Informatica, Contabilidad, Turismo, Administracion y Gastronomia.
POLIMORFISMO • Una misma llamada ejecuta distintas sentencias dependiendo de la clase a la que pertenezca el objeto al que se aplica el método. • Supongamos que declaramos: Persona p; • Podria suceder que durante al ejecución del programa, p referencie a un profesor o a un alumno en distintos momentos, y entonces: Si p referencia a un alumno, con p.toString(), se ejecuta el toString de la clase Alumno. Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
4/6
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre
Si p referencia a un profesor, con p.toString(), se ejcuta el toString de la clase Profesor. VI Ejercicios complementarios 6.1 Construya la siguiente clase similar al ejercicio N°1
VII Actividades en Casa • •
Implemente las clases de los siguientes diagramas: Ejercicio 1
Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
5/6
INSTITUTO SUPERIOR KHIPU CARRERA PROFESIONAL DE COMPUTACION
Aplicaciones con Software Libre •
Ejercicio 2
•
Ejercicio2
VIII Linkografias • http://www.youtube.com/watch?v=CoOgbO3JZwM • http://www.youtube.com/watch?v=BSw1MLEc4PQ complementarios. • http://eaddfsi.wordpress.com/2009/06/13/herencia-en-java/ • http://javabasico.osmosislatina.com/curso/herencia.htm
Ing. Godofredo Poccori Umeres
gpoccori@khipu.edu.pe
6/6