0% encontró este documento útil (0 votos)
33 vistas14 páginas

Herencia y Polimorfismo en POO

El documento presenta una introducción al paradigma de objetos, enfocándose en conceptos clave como herencia, polimorfismo, atributos y métodos de instancia y de clase, así como la diferencia entre clases abstractas y concretas. Se explican ejemplos de herencia y polimorfismo, y se menciona la generación automática de código mediante herramientas de ingeniería directa. Además, se incluyen ejercicios prácticos para aplicar estos conceptos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas14 páginas

Herencia y Polimorfismo en POO

El documento presenta una introducción al paradigma de objetos, enfocándose en conceptos clave como herencia, polimorfismo, atributos y métodos de instancia y de clase, así como la diferencia entre clases abstractas y concretas. Se explican ejemplos de herencia y polimorfismo, y se menciona la generación automática de código mediante herramientas de ingeniería directa. Además, se incluyen ejercicios prácticos para aplicar estos conceptos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción al Paradigma de Objetos

Mecanismo de Herencia
Mecanismo que permite que una clase "herede
de otra clase" o "extienda otra clase“, recibiendo
o heredando atributos y operaciones de su clase
"padre".

La clase principal se denomina: superclase o clase


padre

La clase que hereda se denomina: subclase o


clase hija o clase derivada

La relación se interpreta como “ES UN”

Ejemplo: un Auto ES UN VehiculoTerrestre


Introducción al Paradigma de Objetos

Mecanismo de Herencia - Ejemplo


Introducción al Paradigma de Objetos

Mecanismo de Herencia - Ejemplo


Superclase
Las subclases Autobus y Moto
heredan de la superclase
VehiculoTerreste los atributos
altura, anchura, largo, y también la
operación encender()

Subclase Subclase
Introducción al Paradigma de Objetos

Ejercicio #8 – Herencia
A partir de las clases detectadas previamente, identificar
las relaciones de herencia que existen

TIP: Si consideras útil y/o necesario, puedes proponer nuevas


clases.
Introducción al Paradigma de Objetos

Ejercicio #8 – Solución
Introducción al Paradigma de Objetos

Ejercicio #8 – Codificación
class Cliente {
// Atributos
String cuit;
String direccion;
// Constructores
// Métodos
}

class ClientePyme extends Cliente {


// Atributos - Los atributos heredados no se vuelven a codificar!
String razonSocial;

// Constructores
// Métodos
}
Introducción al Paradigma de Objetos

Que es el Polimorfismo
Es la posibilidad de que una clase presente un comportamiento distinto de
acuerdo a una situación

2 Tipos de Polimorfismo: sin redefinición y con redefinición

Polimorfismo sin redefinición: Una clase que posee varios métodos llamados
iguales pero con diferentes firmas. También llamado Sobrecarga de
Operaciones

3 versiones del método acelerar()


Introducción al Paradigma de Objetos

Que es el Polimorfismo
Polimorfismo con redefinición: Una subclase hereda métodos de su
superclase pero decide modificarlos por que debería comportarse de forma
diferente. También llamado Redefinición de Métodos o Method Override

Cualquier tipo de Automovil


acelera igual que un
AutomovilDeCarrera ?

Extraer dinero de una caja de


ahorro sin descubierto se
realiza de la misma forma que
desde una caja con
descubierto ?
Introducción al Paradigma de Objetos

Que es el Polimorfismo - Codificación


class CajaDeAhorro {
// Atributos
float saldo;

// Métodos
public void extraer(int monto) {
saldo = saldo – monto;
}
}

class CajaDeAhorroDescubierto extends CajaDeAhorro {


// Atributos
float saldoDescubierto;

// Métodos
public void extraer(int monto) {
// este método se vuelve a escribir, misma firma pero diferente cuerpo
// aquí el código que contemple la extracción con saldo descubierto
}

}
Introducción al Paradigma de Objetos

Atributos de Instancia y de Clase


Atributos de Instancia: son atributos que pertenecen a un objeto en
particular

Atributos de Clase: son atributos que pertenecen a la clase y no a un objeto


o instancia de clase. Esto significa que son atributos compartidos por todos
los objetos. También llamados atributos estáticos

Para definir un atributo estático se utiliza la palabra clave static

class CajaDeAhorroConDescubierto {

// Atributos aquí
public float saldo;
public static int descubierto = 5000;
Asumimos en este caso que todas las
} cajas de ahorro cuentan con el mismo
descubierto
Introducción al Paradigma de Objetos

Métodos de Instancia y de Clase


Métodos de Instancia: son métodos que pertenecen a un objeto en
particular e impactan en el comportamiento de ese objeto únicamente

Métodos de Clase: son métodos que pertenecen a la clase y no a un objeto


o instancia de clase. Esto significa que son métodos compartidos por todos
los objetos. También llamados métodos estáticos

Para definir un método estático se utiliza la palabra clave static


class CajaDeAhorroConDescubierto {
// Atributos aquí
public float saldo;
private static int descubierto = 5000;
// Metodos aquí
public static int leerDescubierto() {
return descubierto;
}
}
Introducción al Paradigma de Objetos

Clases Abstractas y Clases Concretas


Las Clases Concretas
- son clases que se pueden instanciar
- por ejemplo la clase Alumno existe para generar diversos objetos del tipo Alumno

Las Clases Abstractas


- son clases que no se pueden instanciar
-representan conceptos muy genéricos de la realidad
- por ejemplo la clase Vehiculo o la clase Persona son conceptos muy abstractos,
seria difícil pensar en armar un objeto a partir de estas clases

Codificación: abstract class Persona {

// Atributos aquí

// Métodos aquí

}
Introducción al Paradigma de Objetos

Generación Automática de Código


El mecanismo de generación automática de código se
denomina Ingeniería Directa

Existen herramientas que permiten generar código fuente


a partir de diagramas, por ejemplo el Enterprise Architect

Estas aplicaciones permiten generar código fuente en


diversos lenguajes, como ser: C#, [Link], PHP, Java,
Actionscript, y mas
Introducción al Paradigma de Objetos

FIN
Muchas Gracias!

También podría gustarte