presentación de powerpoint• reutilización: la herencia respalda el concepto de...

52
POO PROGRAMACIÓN ORIENTADA A OBJETOS Docente: Rafael Mourglia

Upload: others

Post on 25-Dec-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

POOPROGRAMACIÓN ORIENTADA

A OBJETOS

Docente: Rafael Mourglia

Page 2: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

INTRODUCCIÓN

• La POO (o OOP de sus siglas en inglés)

es un paradigma y puede aplicarse a

cualquier lenguaje.

• Actualmente está disponible en mayor o

menor medida en todos los lenguajes

tradicionales y en los más actuales(java,

Delphi, php, Python, VB.net, C#, Ruby,

etc)

Page 3: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

PARADIGMAS DE PROGRAMACIÓN

• “Un paradigma de programación indica un

método de realizar cómputos y la manera en

que se deben estructurar y organizar las tareas

que debe llevar a cabo un programa ”

• Se asocian a un determinado estilo de

programación.

• Los lenguajes de programación suelen

implementar, a menudo de forma parcial, varios

paradigmas (Imperativo, orientado a eventos,

declarativos).

Page 4: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

PARADIGMA ORIENTACIÓN A OBJETOS

• Ofrece mayor dominio sobre el programa

liberándonos aún más de su control.

• Utiliza objetos como bloque esencial de

construcción de software.

• Permite construir programas basándose

en los objetos presentes en la realidad.

• Permiten crear en la computadora

representaciones de esos objetos de la

realidad.

Page 5: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

PARADIGMA ORIENTACIÓN A OBJETOS

• En POO, el programador se libera

enormemente de los problemas relacionados

al funcionamiento del programa en sí,

enfocándose más en los requerimientos del

cliente, pudiendo realizar aplicaciones

mucho más complejas.

• Los objetos nos impiden mezclar sus datos

con otros métodos distintos a los suyos.

Page 6: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Conceptos de ingeniería detrás de la

POO

• Cohesión y acoplamiento

• Alta cohesión

– Modularización mediante la utilización de clases

– Cada clase tiene propiedades y métodos que resuelven

problemas de su realidad.

– Cada método de una clase resuelve problemas sólo de la

clase

• Bajo acoplamiento

– La relación de una clase con otra debe ser a nivel de objeto

(no relacional).

– La modificación de una clase no repercutirá en la otra.

Mejora de la mantenibilidad

– Los atributos de un objeto son privados para que otro objeto

no tenga acceso directo a los mismos.

Page 7: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Conceptos de ingeniería detrás de la

POO

• Legibilidad.- si se requiere analizar cierta funcionalidad

estará enfocada a uno o muy pocas clases.

• Mantenibilidad.- los cambios que se requieran realizar

en el código serán reducidos a una sola clase

específica.

• Reusabilidad.- las clases bien definidas a un solo

propósito pueden ser fácilmente reusadas en otros

segmentos de nuestro código. También aquí aplica la

herencia y polimorfismo

• Alta capacidad de prueba.- las clases requeridas para

realizar pruebas unitarias serán mínimas y bien

delimitadas.

Page 8: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

¿QUÉ NO ES LA POO?

• No es un sistema de comunicación con los

programas basados en ventanas, y entorno

gráfico en general. – Puesto que, normalmente, los lenguajes de POO suelen

presentar estas características y habitualmente estos entornos

suelen desarrollarse con estas técnicas, algunas personas

tienden a identificar la POO a entornos de este tipo.

• No es un un lenguaje. – De hecho las técnicas de POO pueden utilizarse en cualquier

lenguaje conocido. (JAVA, C#, VB.NET, Python, Ruby, PHP)

Page 9: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CARACTERÍSTICAS DE LA POO

• La POO, agrupa un conjunto de técnicas

que nos permiten desarrollar y mantener

mucho más fácilmente programas de una

gran complejidad.

• Concéptos fundamentales:

– Clase y Objeto

– Abstracción

– Encapsulación

– Herencia

– Polimorfismo

Page 10: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE OBJETO

Según RAE:1. m. Todo lo que puede ser materia de conocimiento o sensibilidad

de parte del sujeto, incluso este mismo.

2. m. Cosa

Para POO:

•“Cosa", real o imaginaria, física o intangible, viva

o inerte que existe enmarcado en alguna realidad.

•La idea fundamental es que un objeto es una

entidad (o noción) única. Cada objeto es una

individualidad, que puede estar relacionado o

constituido por otros objetos.

Page 11: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE OBJETO

• Conceptualmente los objetos se componen de

dos elementos: 1. Atributos: son los datos (o propiedades) que nos interesa

trabajar dentro de una determinada realidad.

2. Métodos: son las acciones u operaciones que trabajan sobre

el objeto.

• En un objeto las datos y los métodos deben

estar intrínsecamente relacionados de tal

manera que formen una misma unidad

conceptual y operacional.

• Cada objeto debe contener sólo sus propios

atributos y métodos.

Page 12: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE CLASE

• Conceptualmente una Clase es una plantilla o

molde imaginario que sirve para definir objetos.

• Analogía: La clase es como el plano de un

edificio, mientras que los objetos son todos los

edificios concretos que yo puedo construir con

ese plano.

• En la clase se definen las características y

acciones en común que tienen las entidades u

objetos que representa.

• Decimos que un objeto es una instancia de una

clase.

Page 13: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ABSTRACCIÓN

• Se refiere a concentrarse en las características esenciales

ignorando detalles específicos de las mismas y dejando de

lado otras características que no interesen.

• Ejemplo: realidad referente a una automotora y los autos que

vende a sus clientes.

– Concentrarnos en los autos y en los clientes que lo comprarán. Esto

puede implicar planes de pago, investigar si está en el clearing de

informes. Otros elementos como de donde sacó el dinero con que va a

pagar, o para que quiere el vehículo son irrelevantes.

– De los autos nos puede interesar su marca, modelo, potencia,

procedencia, rodado. Datos como cuanto tiempo demoró en armarse, o

quien lo trajo a la automotora, son irrelevantes.

– De los clientes no puede interesar su documento, nombre y apellido,

teléfono, dirección. Datos como estado civil, si ya tiene otro auto o incluso

fecha de nacimiento son irrelevantes.

– Otro punto es detectar que acciones puede hacer un cliente. El mismo

puede, comprar un vehículo al contado, puede entregar uno como parte

de pago. O la venta puede ser en efectivo, con tarjeta de debito o de

crédito. Otras acciones serán irrelevantes.

Page 14: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

RELACIÓN ENTRE CLASE Y

OBJETO• En la clase se definen aquellas propiedades un

común a un grupo de objetos

Un Vehículo en términos generales tiene:

•Marca

•Modelo

•Motor

•ABS

•Color

•Cantidad puertas

A su vez realiza acciones:

•Encender

•Andar

•Cambiar velocidad

Page 15: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

RELACIÓN ENTRE CLASE Y

OBJETO

Marca: FIAT

Modelo: Uno Sporting

Motor: 1.4 8V

ABS: SI

Color: Gris claro

Cantidad puertas: 5

NUEVO

Marca: Renault

Modelo: Symbol

Motor: 1.6

ABS: NO

Color: Rojo

Cantidad puertas: 4

NUEVO

Page 16: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE ENCAPSULACIÓN

• Una clase debe ser una estructura

cerrada, no se debe poder acceder a ella

si no es a través de los métodos definidos

para la misma.

• Por lo tanto todos los datos de una clase

son privados y se accede a ellos

mediante métodos públicos.

• Cada dato o atributo de una clase deberá

tener un método accesor y/u otro

modificador.

Page 17: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE ENCAPSULACIÓN

• Siguiendo con el ejemplo de un auto

(observándolo como objeto), actualmente

es posible saber el estado general del

mismo con solo ver un tablero.

• Si el auto tiene temperatura, habrá un

“método” llamado termómetro que nos lo

indica. De otra forma tendríamos que

acceder al motor y comprobarlo

manualmente.

Page 18: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ENCAPSULACIÓN EN VB.NET

• En VB.NET podemos y debemos aplicar

el concépto de encapsulación de la

siguiente forma.

• Definir atributos:

– Private _marca As String

– Private _color As String

Page 19: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ENCAPSULACIÓN EN VB.NET

• Para los métodos accesores y

modificadores debemos definir las

propiedades de la clase mediante la

intrucción Property.

• La instrucción Property genera un método

accesor Get y un método modificador Set.

• Por defecto una instrucción Property

contiene un Get y un Set, pero es posible

utilizar sólo uno de los dos.

Page 20: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ENCAPSULACIÓN EN VB.NET

Page 21: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ENCAPSULACIÓN EN VB.NET

• Al momento de establecer un valor a una

propiedad y de obtenerlo, se hace de la

misma forma que si fuera un atributo, solo

que ahora estaremos accediendo a la

propiedad (ya que el atributo se encuentra

oculto)

Page 22: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

ENCAPSULACIÓN EN VB.NET

Set

Get

Page 23: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Objetos que se componen de otros

objetos– En un sistema bien diseñado tendremos que un objeto

se relaciona (o se asocia) con otro, y de alguna forma

debemos establecer una relación entre un objeto y otro.

– En el ejemplo vemos al objeto Empresa y al objeto

Empleado.

– Sabemos que Empresa tiene RazonSocial, Direccion,

RUT y además tiene un Trabajador que es un

Empleado.

Empresa

+RazonSocial: String+Direccion: String+RUT: Long+Trabajador: Empleado

Empleado

+Cedula: Long+Nombre: String+FechaNacimiento: Date+Telefono: String+Direccion: String

Page 24: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Asociación entre objetos• En ningún momento la Empresa debe conocer

propiedades que son propios del empleado, como por

ejemplo su cédula.

• Porque además de estar duplicando datos, no

estaríamos aplicando una de las características de un

objeto donde dice que “Cada objeto debe contener

sólo sus propios atributos y métodos”

Empresa

+RazonSocial: String+Direccion: String+RUT: Long+CedulaTrabajador: Long

Empleado

+Cedula: Long+Nombre: String+FechaNacimiento: Date+Telefono: String+Direccion: String

Page 25: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Asociación entre objetos

• Por lo tanto, siguiendo con el ejemplo, la

Empresa sólo sabe quien es su empleado, pero

nada más. Si desea conocer algún dato del

mismo, debe «preguntar» a su empleado y él

con gusto le brindará todos los datos que

necesite.Empresa

+RazonSocial: String+Direccion: String+RUT: Long+Trabajador: Empleado

Empleado

+Cedula: Long+Nombre: String+FechaNacimiento: Date+Telefono: String+Direccion: String

Dim cedulaEmp = Empresa.Trabajador.Cedula

Page 26: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CONSTRUCTORES

• Para poder utilizar un objeto, previamente

hemos de crearlo; esto es lo que hacemos

mediante el constructor de la clase.

• Para esto se utiliza un operador especial

proporcionado por el lenguaje de

programación que normalmente se llama

‘New’.

• El constructor o los constructores son

notados de una forma especial:

• En VB.NET:

Page 27: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CONSTRUCTORES

• Así, para crear un objeto de la clase

Persona, llamado Juan, escribiremos lo

siguiente:

Dim Juan As Persona

Juan = New Persona()

• Le estamos diciendo al método

constructor que nos devuelva un nuevo

objeto Persona.

Page 28: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CONSTRUCTORES

• Supongamos que este objeto tiene tres

datos y que queremos darle valores a

esos datos del objeto luego de creado:

Edad, Estatura y Color_Ojos. Haremos lo

siguiente:

Juan.Edad = 32

Juan.Estatura = 180

Juan.Color_Ojos = “Marron”

Page 29: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CREAR CONSTRUCTORES

• Habitualmente, los constructores de clase se crean de

tal modo que podamos hacer las dos cosas a la vez:

crear el objeto y dar valores a sus datos, veamos cómo:

Dim Juan As Persona

Juan = New Persona(32, 180, “Marron”)

• Para esto el constructor en la clase Persona de crearà

de la siguiente forma:

Public Sub New(ByVal pEdad As Integer, ByVal pEstatura As Integer,

ByVal pColor_Ojos As String)

Edad = pEdad

Estatura = pEstaturaColor_Ojos = pColor_Ojos

End Sub

Page 30: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

VARIOS CONSTRUCTORES

• Normalmente las clases tiene más de un

constructor, de esta forma podemos crear

objetos e inicializarlos de distintas formas.

Así, podemos tener un constructor de la

clase Persona que recibe solo la edad,

otro la edad y la estatura, otro la edad, la

estatura y el color de ojos, etc.

• El número y tipo de constructores solo

depende de nuestras necesidades y del

sentido común.

Page 31: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CONSTRUCTOR ARGUMENTO CERO

• Existe un constructor especial al que se le llama

"constructor argumento-cero" y es aquel que no

recibe ningún parámetro.

• Él inicializa el objeto con los valores por defecto.

De este modo, podríamos tener un constructor

por defecto de la clase Persona que pusiera el

dato edad a 30, la estatura a 175 y el Color-de-

ojos a marrón. O todos los datos en cero, o

simplemente el cosntructor vacío.

• En todos las clases siempre es conveniente

crear un constructor de este tipo.

Page 32: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE HERENCIA

• Se define como: un mecanismo por el cual una

clase existente permite compartir las

características (atributos y métodos) comunes a

una nueva clase que se crea a partir de la

anterior. Esta nueva clase puede a su vez

contener atributos y métodos propios.

• A la clase existente se le denomina superclase.

• A la clase que hereda de otra se le denomina

subclase.

• Cada subclase puede ser superclase de otras

Page 33: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

TERMINOLOGÍA RELACIONADA A

LA HERENCIA• Superclase: la clase cuyas características se heredan se

conoce como superclase (o una clase base o una clase

principal).

• Subclase: la clase que hereda la otra clase se conoce como

subclase (o una clase derivada, clase extendida o clase hija).

La subclase puede agregar sus propios campos y métodos

además de los campos y métodos de la superclase.

• Reutilización: la herencia respalda el concepto de

“reutilización”, es decir, cuando queremos crear una clase

nueva y ya hay una clase que incluye parte del código que

queremos, podemos derivar nuestra nueva clase de la clase

existente. Al hacer esto, estamos reutilizando los

campos/atributos y métodos de la clase existente.

Page 34: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

Definición extraída de Deitel

• La herencia, es una forma de reutilización de software en la que se

crea una nueva clase absorbiendo los miembros de una clase

existente, y se mejoran con nuevas capacidades, o con

modificaciones en las capacidades ya existentes. Con la herencia,

los programadores ahorran tiempo durante el desarrollo, al reutilizar

software probado y depurado de alta calidad. Esto también aumenta

la probabilidad de que un sistema se implemente con efectividad.

• Al crear una clase, en vez de declarar miembros completamente

nuevos, el programador puede designar que la nueva clase herede

los miembros de una clase existente. Esta clase existente se

conoce como superclase, y la nueva clase se conoce como

subclase.

• Cada subclase puede convertirse en la superclase de futuras

subclases.

“Como programar en JAVA” Deitel. Pág.: 378

Page 35: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

EJEMPLO DE HERENCIA

• Se desea representar a los distintos integrantes de una

selección e futbol.

• Se desea representar tres objetos importantes: Futbolista,

Entrenador y Masajista.

Page 36: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

EJEMPLO DE HERENCIA

• Observar: en las tres clases tenemos atributos y métodos que

son iguales ya que los tres tienen los atributos id, Nombre,

Apellidos y Edad; y los tres tienen los métodos de Viajar y

Concentrarse:

Page 37: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

EJEMPLO DE HERENCIA

• Si se tuviera que implementar en código cada

clase, se estaría repitiendo atributos y

métodos que son comunes a todas las clases.

• Como solución al problema anterior se crea

una clase padre (superclase) llamada

SeleccionFutbol con las características en

común, y luego cada clase heredará de

SeleccionFutbol e implementará sólo

aquellas características no comunes al resto

Page 38: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

EJEMPLO DE HERENCIA

Page 39: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

VENTAJAS DE LA HERENCIA

• Se ahorra código

• Si necesitamos un cambio que deba

afectar a todas las clases, sólo bastará

con modificar la superclase.

• Solucionar un error en la superclase

implicará solucionar el error en todas

las subclases.

• Un objeto de una clase hija puede

crearse dentro de un objeto de una

clase padre.

Page 40: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DESVENTAJAS DE LA HERENCIA

Atención: No es que existan desventajas por el solo

hecho de utilizar herencia. Mas bien son elementos que

se deben considerar en el diseño de un programa,

donde se deberá evaluar si sirve o no su aplicación.

• Un error en la superclase repercutirá en las

subclases.

• Cuando un objeto de una clase hija es instanciada

dentro de un objeto de una clase padre, sólo serán

visibles los atributos y métodos de la clase padre.

(Aunque esto puede ser utilizado a favor)

• La vinculación con una base de datos puede tener

una mayor complejidad de implementación.

• Sólo se puede heredar de una clase padre.

Page 41: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

¿CUANDO DEBO UTILIZAR

HERENCIA?

• Depende de la realidad y los requerimientos del

programa a desarrollar.

• La herencia debe aportar una solución concreta.

Que una realidad concuerde con la definición de

herencia, no significa que se deba aplicar.

• Aplicar herencia sólo por ahorrar unas pocas

líneas de código, puede no tener sentido.

• Si la herencia forma parte de un determinado

patrón de diseño o determinado método se utiliza

de forma muy recurrente, se puede considerar la

herencia como solución.

Page 42: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

IMPLEMENTACIÓN EN VB.NET

La clase padre o

superclase se crea

como cualquier

otra

Page 43: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

IMPLEMENTACIÓN EN VB.NET

La clase hija o

subclase se crean

sólo las

características

propias de la clase.

Luego se hereda

de la clase padre

utilizando inherits

seguido del

nombre de la

superclase.

Page 44: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CLASE ABSTRACTA

• Una clase abstracta es aquella que

construimos para heredar de ella otras

clases, pero de la que no se puede

instanciar.

• Siguiendo con el ejemplo de la selección

de futbol, podríamos considerar que

nunca habrá un objeto SelecciónFutbol,

pero sí será necesaria la herencia para

otras funcionalidades.

Page 45: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CLASE ABSTRACTASeleccionFutbolEn el diagrama de

clases la

representación no

cambia mucho, sólo

que el nombre de la

clase se coloca con

estilo de fuente

cursiva

Page 46: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

CLASE ABSTRACTA –

IMPLEMENTACIÓN EN VB.NET

• En la declaración de clase de la clase padre, se

debe agregar MustInherits antes de Class

Page 47: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE POLIMORFISMO

• Por polimorfismo entendemos aquella cualidad

que poseen los objetos para responder de

distinto modo ante el mismo mensaje.

• Tomemos las clases barco, avión y auto, todas

ellas derivadas de la clase padre vehículo. Un

vehículo cuenta con el método Desplazarse, el

cual será heredado por las clases hijas.

• Sin embargo, si bien todos son vehículos, cada

objeto se desplaza de una forma distinta que

cada una conoce.

Page 48: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE POLIMORFISMO

• En este caso si llamamos al métotodo

Desplazarse desde Auto, se ejecutará el

método de la clase padre, pero lo mismo pasará

si lo ejecutamos desde Barco o Avión.

Vehiculo

+Marca+Modelo

+Desplazarse(pCoordenadas)

Barco

+Ancla

Avion

+Turbinas

Auto

+Ruedas

Page 49: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

DEFINICIÓN DE POLIMORFISMO

• Para solucionar este problema, debemos

sobreescribir el método de la clase padre en

cada clase hija para que de esta forma un

mismo métdo, en este caso Desplazarse realice

distintas acciones dependiendo de cada objeto.Vehiculo

+Marca+Modelo

+Desplazarse(pCoordenadas)

Barco

+Ancla

+Desplazarse(pCoordenadas)

Avion

+Turbinas

+Desplazarse(pCoordenadas)

Auto

+Ruedas

+Desplazarse(pCoordenadas)

Page 50: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

POLIMORFISMO - SOBRECARGA

• La sobrecarga puede ser considerada

como un tipo especial de polimorfismo que

casi todos los lenguajes de POO incluyen.

• Varios métodos pueden tener el mismo

nombre siempre y cuando el tipo de

parámetros que recibe o el número de

ellos sea diferente.

Page 51: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

POLIMORFISMO - SOBRECARGA

• Por ejemplo la clase Hoja puede tener

tantos método Escribir() como tipos de

datos queramos escribir.

Page 52: Presentación de PowerPoint• Reutilización: la herencia respalda el concepto de “reutilización”, es decir, cuando queremos crear una clase nueva y ya hay una clase que incluye

POLIMORFISMO - SOBRECARGA

• Luego al invocar la función, al momento

de asignar los parámetros, nos mostrará

las distintas opciones:

1 de 3: nos indica que existen 3

sobrecargas para el método Escribir