REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA
LA EDUCACIÓN UNIVERSITARIA
INSTITUTO POLITECNICO SANTIAGO MARIÑO
INGENIERIA DE SISTEMAS
LENGUAJE DE PROGRAMACIÓN III
SAIA – BARINAS
Participante:
Nestor Moreno
C.I. 14.331.859
Profesora: Rosbelia Balza
Guarenas, Febrero del 2016
1. Introducción
2. Herencia
1. Definición
2. Superclases – subclases
3. Redefinición de Métodos
4. Ejemplo 1
5. Ejemplo 2
3. Polimorfismo
1. Definición
2. Varias formas de Polimorfismo
3. Variables Polimórficas
4. Ejemplos
4. Conclusión
5. Bibliografía
Dentro de la programación orientada a objetos en Java,
nos introduciremos en una de las características
principales, la herencia, que es una forma de reutilización
de software en la que las clases se crean absorbiendo los
datos (atributos) y métodos (comportamiento) de una clase
existente.
Y por consiguiente, se planteara todo lo referente al
polimorfismo, el cual este nos permite programar en forma
general, en vez de forma especifica.
La herencia es una propiedad que
permite la declaración de nuevas
clases a partir de otras ya existentes.
Esto proporciona una de las ventajas
principales de la Programación
Orientada a Objetos: la reutilización
de código previamente desarrollado
ya que permite a una clase más
específica incorporar la estructura y
comportamiento de una clase más
general.
Por ejemplo:
Cuando una clase B se construye a partir de otra A mediante la
herencia, la clase B hereda todos los atributos, métodos y clases
internas de la clase A. Además la clase B puede redefinir los
componentes heredados y añadir atributos, métodos y clases internas
específicas.
Superclase – subclases
Al crear una clase, en vez de
declarar miembros (variables y
métodos) completamente nuevos, el
programador puede designar que la
nueva clase herede los miembros
de una clase existen. Esta clase
existente se conoce como
superclase, y la nueva clase se
conoce como subclase. Una vez
creada, cada subclase puede
convertirse en superclase de futuras
subclases.
Superclase – subclases
Jerarquía de Clases
Java permite múltiples niveles de
herencia pero no la herencia
múltiple, es decir una clase sólo
puede heredar directamente de
una clase ascendiente. Por otro
lado, una clase puede ser
ascendiente de tantas clases
descendiente como se desee (un
único padre, multitud de hijos).
Redefinición de Métodos
• En la clase derivada podemos
redefinir (override) métodos, lo
cual corresponde a reimplementar
un método de la clase base en la
clase derivada.
• Si aún deseamos acceder la
método de la clase base, lo
podemos hacer utilizando la
palabra super como referencia al
padre.
• Notar que también usamos esta
palabra reservada para invocar
constructores
Ejemplo 1/2:
Si un objeto se ha asignado a
una referencia de una de sus
superclases, es aceptable
convertir el tipo de ese objeto de
regreso a su propio tipo. De
hecho, esto debe hacerse para
enviar a ese objeto cualquiera de
los mensajes que no aparecen en
esa superclase.
Ahora bien, en nuestro primer
ejemplo de Herencia aparece en
la figura 27.3
Ejemplo 2/2:
• Asignación de referencias de
subclases o referencias de
superclases, Punto.java
• Asignación de referencias de
subclases o referencias de
superclases, Circulo.java
Otro Ejemplo 1/2:
• Crea tres clases llamadas
Empleado
Gerente
Vendedor
La definición de estas tres clases es
la siguiente:
En la clase Empleado hemos
definido tres variables: name, age y
empno. Usamos un constructor
parametrizado para inicializar estas
tres variables. Luego creamos una
clase Gerente que hereda de la
clase Empleado. Para heredar de
una clase, se usa la palabra clave
“extends”, seguida del nombre de la
clase de la que quiere heredar.
Como la clase Gerente ahora
hereda de la clase Empleado, tiene
acceso a todos los miembros public
y protected de la clase Empleado.
Otro Ejemplo 2/2:
De la misma forma, la
clase Vendedor también
contiene una constructor
que inicializa las variables
de la clase base usando la
palabra “super”. También
inicializa la variable
commission, que es
exclusiva de la clase
Vendedor.
En java, polimorfismo es la
capacidad de un objeto de
comportarse de múltiples
maneras, dependiendo de la
referencia de la clase
almacenada en el objeto. El
polimorfismo en Java se
implementa por medio de la
herencia.
Existen varias formas de polimorfismo:
 Se aplica al llamar el mismo nombre de método sobre instancias
de distinta clase.
 Si creamos múltiples constructores.
 cuando vía subtipo asignamos una instancia de una subclase a
una referencia a la clase base.
 Creando una clase derivada, gracias a la relación es-un podemos
utilizar instancias de la clase derivada donde se esperaba una
instancia de la clase base. También se conoce como principio de
sustitución.
Variable polimórfica:
Una variable referencia es polimórfica cuando su tipo de
declaración no coincide con el tipo del objeto al que referencia:
Figura f1 = new Figura(“Estandar”, “Rojo”);
Figura f2 = new Circulo(“Verde”, 5.0);
F2 variable polimorfica.
Pasos de Argumentos:
• Las conexiones polimorfas se realizan a veces de manera implícita
en el paso de argumentos a una operación.
Ejemplo 1/1:
Crea una clase llamada Forma. Agrega
una variable miembro “name” a esta
clase. Añade un constructor
parametrizado que inicialice name.
Añade un método DsplayName que
muestra la variable name en la consola
con una sentencia apropiada. Crea dos
clases: Círculo y Cuadrado. Estas
clases implementaran su propio método
DisplayName. Usando una clase de
prueba, como MyClass.java, muestra
cómo lograr polimorfismo en este caso.
Ejemplo 2/2:
• Ahora bien, dentro de
MyClass.java almacenamos
referencias de las clases Forma,
Círculo y Cuadrado en el objeto
tipo Forma.
• Luego llamamos el método
DisplayName y vemos que se
comporta de forma diferente. Así
es como se implementa el
polimorfismo
Tenemos entonces lo siguiente:
 Java soporta solamente la herencia simple.
 En la herencia, una clase solo puede heredar de otra
clase.
 El polimorfismo es particularmente efectivo en la
implementación de software en capas
 Con el polimorfismo es posible diseñar sistemas que
se puedan extender fácilmente.
 La herencia y el polimorfismo trabajan de la mano
conjuntamente.
Herencia. Cómo programar en Java.
Paul J. Deitel. Pág. 355 al 362
Superclases. Cómo programar en C/C++ y Java
Cuarta edición, DEITEL, Pág. 636 al 640
Programación Java. Guía de Java paso a paso.
Autor: Troy Dimes, Pág. 120 a 132
Java. Users Java.
Autor: Ignacio Vivona. Pág. 21 al 28

Herencia y Polimorfismo

  • 1.
    REPUBLICA BOLIVARIANA DEVENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIA INSTITUTO POLITECNICO SANTIAGO MARIÑO INGENIERIA DE SISTEMAS LENGUAJE DE PROGRAMACIÓN III SAIA – BARINAS Participante: Nestor Moreno C.I. 14.331.859 Profesora: Rosbelia Balza Guarenas, Febrero del 2016
  • 2.
    1. Introducción 2. Herencia 1.Definición 2. Superclases – subclases 3. Redefinición de Métodos 4. Ejemplo 1 5. Ejemplo 2 3. Polimorfismo 1. Definición 2. Varias formas de Polimorfismo 3. Variables Polimórficas 4. Ejemplos 4. Conclusión 5. Bibliografía
  • 3.
    Dentro de laprogramación orientada a objetos en Java, nos introduciremos en una de las características principales, la herencia, que es una forma de reutilización de software en la que las clases se crean absorbiendo los datos (atributos) y métodos (comportamiento) de una clase existente. Y por consiguiente, se planteara todo lo referente al polimorfismo, el cual este nos permite programar en forma general, en vez de forma especifica.
  • 5.
    La herencia esuna propiedad que permite la declaración de nuevas clases a partir de otras ya existentes. Esto proporciona una de las ventajas principales de la Programación Orientada a Objetos: la reutilización de código previamente desarrollado ya que permite a una clase más específica incorporar la estructura y comportamiento de una clase más general.
  • 6.
    Por ejemplo: Cuando unaclase B se construye a partir de otra A mediante la herencia, la clase B hereda todos los atributos, métodos y clases internas de la clase A. Además la clase B puede redefinir los componentes heredados y añadir atributos, métodos y clases internas específicas.
  • 7.
    Superclase – subclases Alcrear una clase, en vez de declarar miembros (variables y métodos) completamente nuevos, el programador puede designar que la nueva clase herede los miembros de una clase existen. Esta clase existente se conoce como superclase, y la nueva clase se conoce como subclase. Una vez creada, cada subclase puede convertirse en superclase de futuras subclases.
  • 8.
  • 9.
    Jerarquía de Clases Javapermite múltiples niveles de herencia pero no la herencia múltiple, es decir una clase sólo puede heredar directamente de una clase ascendiente. Por otro lado, una clase puede ser ascendiente de tantas clases descendiente como se desee (un único padre, multitud de hijos).
  • 10.
    Redefinición de Métodos •En la clase derivada podemos redefinir (override) métodos, lo cual corresponde a reimplementar un método de la clase base en la clase derivada. • Si aún deseamos acceder la método de la clase base, lo podemos hacer utilizando la palabra super como referencia al padre. • Notar que también usamos esta palabra reservada para invocar constructores
  • 11.
    Ejemplo 1/2: Si unobjeto se ha asignado a una referencia de una de sus superclases, es aceptable convertir el tipo de ese objeto de regreso a su propio tipo. De hecho, esto debe hacerse para enviar a ese objeto cualquiera de los mensajes que no aparecen en esa superclase. Ahora bien, en nuestro primer ejemplo de Herencia aparece en la figura 27.3
  • 12.
    Ejemplo 2/2: • Asignaciónde referencias de subclases o referencias de superclases, Punto.java • Asignación de referencias de subclases o referencias de superclases, Circulo.java
  • 13.
    Otro Ejemplo 1/2: •Crea tres clases llamadas Empleado Gerente Vendedor La definición de estas tres clases es la siguiente: En la clase Empleado hemos definido tres variables: name, age y empno. Usamos un constructor parametrizado para inicializar estas tres variables. Luego creamos una clase Gerente que hereda de la clase Empleado. Para heredar de una clase, se usa la palabra clave “extends”, seguida del nombre de la clase de la que quiere heredar. Como la clase Gerente ahora hereda de la clase Empleado, tiene acceso a todos los miembros public y protected de la clase Empleado.
  • 14.
    Otro Ejemplo 2/2: Dela misma forma, la clase Vendedor también contiene una constructor que inicializa las variables de la clase base usando la palabra “super”. También inicializa la variable commission, que es exclusiva de la clase Vendedor.
  • 16.
    En java, polimorfismoes la capacidad de un objeto de comportarse de múltiples maneras, dependiendo de la referencia de la clase almacenada en el objeto. El polimorfismo en Java se implementa por medio de la herencia.
  • 17.
    Existen varias formasde polimorfismo:  Se aplica al llamar el mismo nombre de método sobre instancias de distinta clase.  Si creamos múltiples constructores.  cuando vía subtipo asignamos una instancia de una subclase a una referencia a la clase base.  Creando una clase derivada, gracias a la relación es-un podemos utilizar instancias de la clase derivada donde se esperaba una instancia de la clase base. También se conoce como principio de sustitución.
  • 18.
    Variable polimórfica: Una variablereferencia es polimórfica cuando su tipo de declaración no coincide con el tipo del objeto al que referencia: Figura f1 = new Figura(“Estandar”, “Rojo”); Figura f2 = new Circulo(“Verde”, 5.0); F2 variable polimorfica.
  • 19.
    Pasos de Argumentos: •Las conexiones polimorfas se realizan a veces de manera implícita en el paso de argumentos a una operación.
  • 20.
    Ejemplo 1/1: Crea unaclase llamada Forma. Agrega una variable miembro “name” a esta clase. Añade un constructor parametrizado que inicialice name. Añade un método DsplayName que muestra la variable name en la consola con una sentencia apropiada. Crea dos clases: Círculo y Cuadrado. Estas clases implementaran su propio método DisplayName. Usando una clase de prueba, como MyClass.java, muestra cómo lograr polimorfismo en este caso.
  • 21.
    Ejemplo 2/2: • Ahorabien, dentro de MyClass.java almacenamos referencias de las clases Forma, Círculo y Cuadrado en el objeto tipo Forma. • Luego llamamos el método DisplayName y vemos que se comporta de forma diferente. Así es como se implementa el polimorfismo
  • 22.
    Tenemos entonces losiguiente:  Java soporta solamente la herencia simple.  En la herencia, una clase solo puede heredar de otra clase.  El polimorfismo es particularmente efectivo en la implementación de software en capas  Con el polimorfismo es posible diseñar sistemas que se puedan extender fácilmente.  La herencia y el polimorfismo trabajan de la mano conjuntamente.
  • 23.
    Herencia. Cómo programaren Java. Paul J. Deitel. Pág. 355 al 362 Superclases. Cómo programar en C/C++ y Java Cuarta edición, DEITEL, Pág. 636 al 640 Programación Java. Guía de Java paso a paso. Autor: Troy Dimes, Pág. 120 a 132 Java. Users Java. Autor: Ignacio Vivona. Pág. 21 al 28