• No se han encontrado resultados

Investigación Polimorfismo

N/A
N/A
Protected

Academic year: 2021

Share "Investigación Polimorfismo"

Copied!
12
0
0

Texto completo

(1)

21-9-2017

21-9-2017

Herencia y

Herencia y

Polimorfismo

Polimorfismo

Investigación 2

Investigación 2

(2)

PÁGINA 1

 Índice

 Índice ... 1 Introducción ... 2 Objetivos ... 3 Objetivo general. ... 3 Objetivos específicos. ... 3 Herencia ... 4

¿En qué consiste? ... 4

¿Para qué se usa? ... 4

 Ventajas ... 4

Desventajas ... 4

Herencia en Java ... 5

 Visibilidad ... 5

Herencia en un diagrama de clases ... 6

Extensión a la clase coche ... 6

Herencia y constructores ... 7 Polimorfismo ... 7 Tipos de polimorfismo ... 8 Sobrecarga: ... 8 Paramétrico: ... 8 Inclusión ... 8 Polimorfismo en Java ... 8

Conversión de referencias (casting) ... ... ... 9

Conclusiones ... 10

(3)

Introducción

La herencia y el polimorfismo son mecanismos de la programación orientada a objetos (POO) basados en clases y métodos, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad y un método se deriva de otro para extender su funcionalidad. JAVA permite el empleo de la herencia y el polimorfismo, y permite definir una clase y un método tomando como base a otra clase u otro método ya existente, es decir, reutilización de código. La herencia y el polimorfismo son considerados conceptos fundamentales en la programación orientada a objetos ya que a partir de esto podemos establecer relaciones con otras clases de manera jerárquica.

(4)

PÁGINA 3

Objetivos

OBJETIVO GENERAL.

• Definir los conceptos de herencia y polimorfismo

OBJETIVOS ESPECÍFICOS.

• Definir la diferencia entre herencia y polimorfismo • Explicar las utilidades de la herencia y polimorfismo • Describir ejemplos de herencia y polimorfismo

(5)

Herencia

Herencia en la programación orientada a objetos es la habilidad de extender una funcionalidad existente definiendo una nueva clase que hereda funcionalidad de una clase existente.

¿En qué consiste?

Si se cuenta con una clase que se acerca a lo que necesitamos; no es necesario crear una clase desde cero, podemos extenderla para crear nuestra nueva clase. Esta nueva clase se llamará subclase y la clase que ya teníamos se llamará superclase.

 Al igual que las herencias en la vida real, la clase hija pasa a tener lo que tiene la clase padre

•  Atributos • Métodos

La subclase heredara todos los atributos y los métodos que fueron definidos en la clase padre. Si necesitamos cambiar algún método, se puede sobrescribir el comportamiento en nuestra subclase; utilizando el mismo nombre y los mismos argumentos del método que se encuentra en la subclase. Si se requiere podemos crear un nuevo método e incluirlo en nuestra subclase.

Un objeto de la clase hija es también un objeto de la clase padre. Una clase puede heredar atributos por dos superclases (clases padres). La herencia múltiple puede ser usada para agrupar atributos y métodos de distintas clases en una sola.

¿EN QUÉ CONSISTE?

• En la clase hija se definen las diferencias respecto de la clase padre

¿PARA QUÉ SE USA?

• Para extender la funcionalidad de la clase padre • Para especializar el comportamiento de la clase padre

 VENTAJAS

• Tipo especial de relación entre clases

• Es uno de los aspectos que distinguen el Paradigma de Orientación a Objetos frente a otros

paradigmas

• Mecanismo que facilita la modificabilidad y reutilización de los diseños y el código

DESVENTAJAS

• Se introduce una fuerte dependencia en la clase hija respecto a la clase padre • Puede dificultar la reutilización

• Un cambio en la clase padre puede tener efectos imprevistos en las clases hijas. • Se establece una jerarquía o clasificación.

(6)

PÁGINA 5

HERENCIA EN JAVA

Se indica usando la palabra reservadaextends.

 VISIBILIDAD

• Los miembros privados de la superclase no son visibles desde la subclase Los miembros

públicos de la superclase son visibles y siguen siendo públicos en la subclase.

• Se puede acceder a los miembros de la superclase usando la palabra reservada super . • Si una clase se declara como final no se puede heredar de ella.

• En java, todas las clases heredan implícitamente de la clase Object. • Sólo se puede hacer herencia de implementación (extends) de una clase.

• No se crean problemas de referencias circulares o alternativas a un método con la misma

declaración.

• Se puede hacer herencia de interfaz (implements) de todas las interfaces que se quiera. • Los atributos y métodos de la superclase no se repiten en las subclases.

(7)

HERENCIA EN UN DIAGRAMA DE CLASES

(8)

PÁGINA 7

HERENCIA Y CONSTRUCTORES

• 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

• la llamada a super  debe ser la primera instrucción del constructor de la subclase • Si desde un constructor de una subclase no se llama expresamente al de la superclase • el compilador añade la llamada al constructor sin parámetros. en el caso de que la superclase

no tenga un constructor sin parámetros se produciría un error de compilación

Polimorfismo

La palabra polimorfismo viene de “múltiples formas”. Las operaciones polimórficas son aquellas que hacen funciones similares con objetos diferentes.

En programación orientada a objetos es una técnica para optimizar la funcionalidad basada en tipos particulares. La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases  y polimorfismo con métodos. Gracias a la herencia, se puede interpretar que un objeto de una subclase es también un objeto de una superclase El polimorfismo es un mecanismo que se aprovecha de la herencia (especialmente de interfaz) para manejar indistintamente objetos de las subclases como si fuesen objetos de la clase base, sin preocuparse por la clase en concreto a la que pertenecen Interesa utilizarlo cuando un comportamiento varía en función del tipo de algo. Existen 3 tipos de polimorfismo.

(9)

TIPOS DE POLIMORFISMO

Sobrecarga:

Es cuando existen funciones con el mismo nombre, con funcionalidad similar; en clases que son completamente independientes una de la otra.

Paramétrico:

Existen funciones con el mismo nombre, pero se usan diferentes parámetros (nombre o tipo). Se selecciona el método dependiendo del tipo de datos que se mande.

Inclusión

:

Es cuando se puede llamar a un método sin tener que conocer su tipo, así no se toma en cuenta los detalles de las clases especializadas, utilizando una interfaz común.

POLIMORFISMO EN JAVA

El polimorfismo en Java consiste en dos propiedades:

1.Una referencia a una superclase puede apuntar a un objeto de cualquiera de sus subclases

2. La operación se selecciona en base a la clase del objeto, no a la de la referencia

(10)

PÁGINA 9

 Y podría invocarse de la forma siguiente:

• Gracias a la primera propiedad el parámetro f puede referirse a cualquier subclase de Figura • Gracias a la segunda propiedad en mueveFigura se llama a las operaciones borra y dibuja

apropiadas

Conversión de referencias (casting)

Se declaran atributos, parámetros o variables de la clase base, se les asignan objetos de alguna de las subclases, se pueden usar todos los métodos declarados en la clase base, si necesitamos usar métodos de las subclases es necesario hacer un cast. Un casting es una operación especial que nos permite realizar una conversión entre tipos.

El casting es un procedimiento para transformar una variable primitiva de un tipo a otro, o transformar un objeto de una clase a otra clase siempre y cuando haya una relación de herenci a entre ambas.

Dentro del casting de variables primitivas se distinguen dos clases:

• Implícito: no se necesita escribir código para que se lleve a cabo. Ocurre cuando se realiza

una conversión ancha ( widening casting), es decir, cuando se coloca un valor pequeño en un contenedor grande.

• Explícito: sí es necesario escribir código. Ocurre cuando se realiza una conversión estrecha

(narrowing casting), es decir, cuando se coloca un valor grande en un contenedor pequeño. Son susceptibles de pérdida de datos.

(11)

Conclusiones

• Las clases se pueden extender. La subclase hereda los atributos y métodos de la superclase. •  Al extender una clase se pueden redefinir sus operaciones. si se desea, se puede invocar desde

la nueva operación a la de la superclase, a esto se le conoce como programación incremental.

•  A la subclase se le pueden añadir nuevas operaciones y atributos

• El polimorfismo nos permite abstraer operaciones, podemos invocarlas sin preocuparnos de

las diferencias, existentes para objetos diferentes, el sistema elige la operación apropiada al objeto.

• El polimorfismo se asocia a las jerarquías de clases: una superclase y todas las subclases

derivadas de ella directa o indirectamente.

• El polimorfismo en Java consiste en dos propiedades: 1. Una referencia a una superclase

puede apuntar a un objeto de cualquiera de sus subclases. 2.La operación se selecciona en base a la clase del objeto, no a la de la referencia

(12)

PÁGINA 11

Bibliografía

• King, Kim N. “Java programming: from the beginning”. W. W. Norton & Company, cop. 2000 • Francisco Gutiérrez, Francisco Durán, Ernesto Pimentel.“Programación Orientada a Objetos

con Java”. Paraninfo, 2007.

• Ken Arnold, James Gosling, David Holmes, “El lenguaje de programación Java”, 3ª edición.

 Addison-Wesley, 2000.

• Deitel, Harvey M. y Deitel, Paul J., “Cómo programar en Java”,  10ma. edición. Pearson

Referencias

Documento similar

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas