Practicade herencia y polimorfismo

6
INSTITUTO TECNOLOGICO DE SALINA CRUZ MATERIA: FUNDAMENTOS DE PROGRAMACIÓN DOCENTE: MONICA SUSANA ROMAN NAJERA UNIDAD V: HERENCIA Y POLIMORFISMO ACTIVIDAD: EJEMPLO DE PRÁCTICA ALUMNA: CRUZ ELENA ALQUISIREZ PÉREZ CARRERA: ING. EN TIC´S II SEMESTRE GRUPO: E2 SALINA CRUZ, OAXACA A 02/06/2014

Transcript of Practicade herencia y polimorfismo

Page 1: Practicade herencia y polimorfismo

INSTITUTO TECNOLOGICO DE SALINA CRUZ

MATERIA:FUNDAMENTOS DE PROGRAMACIÓN

DOCENTE:MONICA SUSANA ROMAN NAJERA

UNIDAD V:HERENCIA Y POLIMORFISMO

ACTIVIDAD:EJEMPLO DE PRÁCTICA

ALUMNA:CRUZ ELENA ALQUISIREZ PÉREZ

CARRERA: ING. EN TIC´S

II SEMESTRE GRUPO: E2

SALINA CRUZ, OAXACA A 02/06/2014

Page 2: Practicade herencia y polimorfismo

Herencia y Polimorfismo en Java

Muchas veces damos por sentado que todos en programación saben y aplican la “herencia” y el “polimorfismo”, si bien existe una amplia documentación al respecto; que los invito a buscar en la red, para entender los conceptos y su aplicación un ejemplo sencillo ayudaría mucho, es por esto que decidí escribir esta pequeña nota.

Bueno iniciemos, utilice el IDE que más le guste o si prefiere con un simple editor, por comodidad utilizare un IDE pero como todos sabemos es indiferente cual se utilice.

Herencia

A) Creamos un proyecto en nuestro IDE, por ejemplo Herencia y Polimorfismo, tal como lo muestro en la siguiente imagen:

Este proyecto tiene tres clases:

1. Herencia (clase principal)2. acepta

3. concede

B) La Herencia en java permite que una clase reciba automáticamente  las propiedades y los métodos de otra clase.

C) La clase “concede” tiene el siguiente código con un solo método:

package conceptos;

public class concede {     public void estoyEscribiendo(){         System.out.println("Escribo una nota");     } }

D)  Ahora vamos a la clase “acepta” que tiene el siguiente código:

package conceptos;

Page 3: Practicade herencia y polimorfismo

public class acepta extends concede { }

La clase concede utiliza la palabra clave “extends” eso quiere decir que automáticamente 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:

package conceptos;

public class Herencia {     public static void main(String[] args) {         acepta herencia = new acepta();         herencia.estoyEscribiendo();     } }

Si ustedes están realizando este ejemplo con algún IDE, notaran que al escribir “herencia.” tenemos disponible el método “estoyEscribiendo”, pero que sucede si la clase “acepta” no tienen ningún método?, 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 código  es la súper clase y la clase que hereda el código es la sub clase.

Al ejecutar (Run) la clase Herencia obtendremos el siguiente resultado:

Escribo una nota

Polimorfismo

Page 4: Practicade herencia y polimorfismo

Mediante el polimorfismo podemos variar las propiedades de un objeto que a heredado de otra clase, veamos esto siguiendo con nuestro código, añado las siguientes líneas :

package conceptos;

public class Herencia {     public static void main(String[] args) {         acepta herencia = new acepta();         concede herenciaDos = new concede();         herencia.estoyEscribiendo();         herenciaDos.estoyEscribiendo();     } }

Al ejecutar el anterior código 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 aquello datos que recibe, en nuestro ejemplo haremos lo siguiente:

package conceptos;

public class acepta extends concede {     public void estoyEscribiendo(){         System.out.println("Tu también escribes una nota");     } }

Este es un ejemplo claro de polimorfismo ya que la clase “acepta” esta heredando todo lo que tiene la clase “concede”, lo que realizamos en esta clase es añadir 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 método que he heredado cambiando el mensaje que voy a desplegar.

Para aclarar un poco más la idea, voy a realizar un cambio en la clase “concede” de tal manera que quede de la siguiente manera:

package conceptos;

public class concede {     public void estoyEscribiendo(){         System.out.println("Escribo una nota");     }

Page 5: Practicade herencia y polimorfismo

        public void estoyLeyendo(){         System.out.println("Leo un libro");     } }

Como podrán apreciar he añadido un método mas a la clase concede y la clase principal quedara de la siguiente manera:

package conceptos;

public class Herencia {     public static void main(String[] args) {         acepta herencia = new acepta();         herencia.estoyEscribiendo();         herencia.estoyLeyendo();     } }

El resultado de ejecutar el código será lo siguiente:

Tú también escribes una nota Leo un libro

En este caso podemos comprobar cómo hemos heredado en la clase “acepta” el método “estoyLeyendo” ya que no existe este método en la clase “acepta” y hemos sobrescrito el método “estoyEscribiendo”.

Comprobamos por tanto como “acepta” lo que hace es heredar los métodos deja intacto el método “estoyLeyendo” pero modifica el “estoyEscribiendo” poniendo otro mensaje para desplegar.