Вы находитесь на странице: 1из 11

Departamento de Ciencias de la

Computacin

PROGRAMACIN 2

Nombre: Luis Andrs Chicaiza


NRC: 2225
Docente: Oswaldo Almeida

Abril-Agosto 2017
Deber
1. Tema: Herencia y Polimorfismo
2. Marco Terico:
Herencia y Polimorfismo en Java
A continuacin se explicaran algunos ejemplos para entender de manera prctica los
conceptos de herencia y polimorfismo.
Herencia
A) Creamos un proyecto en nuestro IDE, por ejemplo Herencia y Polimorfismo, tal
como se muestra en la siguiente imagen:

Este proyecto tiene tres clases:


Herencia (clase principal)
acepta
concede
B) La Herencia en java permite que una clase reciba automticamente las
propiedades y los mtodos de otra clase.
C) La clase concede tiene el siguiente cdigo con un solo mtodo:
D) Ahora vamos a la clase acepta que tiene el siguiente cdigo:

La clase concede utiliza la palabra clave extends eso quiere decir que
automticamente la clase acepta recibe todo lo que le da la clase concede.
E) La clase principal.- crearemos una nueva instancia del tipo acepta y nuestra clase
principal quedara de la siguiente manera:

Al escribir este ejemplo en algn IDE, se verifica que al escribir herencia. tenemos
disponible el mtodo estoyEscribiendo, pero que sucede si la clase acepta no tiene
ningn mtodo, la magia est en la palabra extends que est en acepta que le
permite heredar de la clase concede.
En este caso la clase que proporciona el cdigo es la super clase y la clase que hereda
el cdigo es la sub clase.
Al ejecutar (Run) la clase Herencia obtendremos el siguiente resultado:
Polimorfismo
Mediante el polimorfismo podemos variar las propiedades de un objeto que ha
heredado de otra clase, veamos esto siguiendo con nuestro cdigo, aado las
siguientes lneas:

Al ejecutar el anterior cdigo nos desplegara dos veces el mensaje:


Escribo una nota
Escribo una nota

Mediante el polimorfismo podemos hacer que la clase acepta que es la que extiende
a todas las propiedades de concede pueda modificar aquellos datos que recibe, en
nuestro ejemplo haremos lo siguiente:

Este es un ejemplo claro de polimorfismo ya que la clase acepta est heredando todo
lo que tiene la clase concede, lo que realizamos en esta clase es aadir un
polimorfismo y sobre escribir lo que heredamos, es decir tenemos estoyEscribiendo
que hemos heredado pero estamos sobrescribiendo lo que he heredado, en pocas
palabras estoy sobrescribiendo el mtodo que he heredado cambiando el mensaje que
voy a desplegar.
Para aclarar un poco ms la idea, voy a realizar un cambio en la clase concede de tal
manera que quede de la siguiente manera:
Como podrn apreciar he aadido un mtodo ms a la clase concede y la clase
principal quedara de la siguiente manera:

El resultado de ejecutar el cdigo ser lo siguiente:


Tu tambin escribes una nota
Leo un libro
En este caso podemos comprobar cmo hemos heredado en la clase acepta el
mtodo estoyLeyendo ya que no existe este mtodo en la clase acepta y hemos
sobrescrito el mtodo estoyEscribiendo.
Comprobamos por tanto como la clase acepta hereda los mtodos y deja intacto el
mtodo estoyLeyendo pero modifica el estoyEscribiendo poniendo otro mensaje
para desplegar.
3. Marco Prctico
Realice un programa con tres clases, persona, estudiante y profesor, las dos ltimas
deben heredar ciertos atributos y mtodos de persona
Diagrama de Clases

Cdigo
package claseprin;

import java.util.ArrayList;

import java.util.Scanner;

public class Claseprin

public static void main(String[] args)

int aux=0;

ArrayList <persona>p=new ArrayList <>();

ArrayList <persona>es=new ArrayList <>();

Scanner d=new Scanner (System.in);

while(aux!=3)

System.out.println("Ingresar estudiante 1, ingresar profesor 2, salir 3");

aux=d.nextInt();
if(aux!=3)

if(aux==1)

estudiante e=new estudiante(null,0);

e.leer();

es.add(e);

else

profesor pr=new profesor(null,0);

pr.leer();

p.add(pr);

persona pers=new persona(null);

pers.imp(p,es);

Clase persona
package claseprin;

import java.util.ArrayList;

import java.util.Scanner;

public class persona

int []cedula= new int [10];

String nombre;

Scanner dt=new Scanner(System.in);

public persona(String nombre) {


this.nombre = nombre;

public void leer()

System.out.println("Deme la cedula");

for(int x=0;x<10;x++)

cedula[x]=dt.nextInt();

System.out.println("Deme el nombre");

dt.nextLine();

nombre=dt.nextLine();

public void imp(ArrayList <persona>p, ArrayList <persona> es)

persona per=new persona(null);

for(int x=0;x<p.size();x++)

per=p.get(x);

System.out.println("Cedula:");

for(int i=0;i<10;i++)

System.out.print(per.cedula[i]);

System.out.println("\nNombre : "+per.nombre);

}
Clase estudiante
package claseprin;

import java.util.ArrayList;

public class estudiante extends persona

int credi;

public estudiante(String nombre, int credi) {

super(nombre);

this.credi=credi;

@Override

public void leer()

super.leer();

System.out.println("Numero de creditos");

credi=dt.nextInt();

@Override

public void imp(ArrayList <persona>p, ArrayList <persona> es)

super.imp(p, es);

System.out.println(" Carga: "+credi);

Clase profesor
package claseprin;

import java.util.ArrayList;
public class profesor extends persona

int carga;

public profesor(String nombre,int carga) {

super(nombre);

this.carga=carga;

@Override

public void leer()

super.leer();

System.out.println("Carga horaria");

carga=dt.nextInt();

@Override

public void imp(ArrayList <persona>p, ArrayList <persona> es)

super.imp(p, es);

System.out.println(" Carga: "+carga);

Corrida
4. Conclusiones y recomendaciones

Para heredar caractersticas de una clase hacia otra se utiliza la palabra


reservada de Java denominada extends.
La clase que cede sus atributos se denomina como superclase, mientras que la
clase que los recibe es la sub clase.
Los constructores no se heredan las subclases deben definir su propio
constructor. Normalmente ser necesario inicializar los atributos de la
superclase para ello se llama a su constructor desde el de la subclase.

Вам также может понравиться