Sunteți pe pagina 1din 35

Programación Orientada

objetos
Sesión 05.1: El polimorfismo y Herencia
Inheritance y SMO fi polimórfica

Prof. Herminio Paucar Prof.


Edson Huillca
Clase de hoy

• principios paradigma OO
• herencia
• polimorfonucleares fi smo

• las interfaces

• Las clases abstractas

Herencia y polimorfismo 2
Principios de paradigma OO

abstracción encapsulación

modularidad jerarquía

Herencia y polimorfismo 3
abstracción

• La representación computacional del objeto real debe centrarse en las


características que son relevantes para el problema

Fuente: Libro "Orientada a Objetos Análisis y Diseño de Aplicaciones"

Herencia y polimorfismo 4
abstracción

• Ellos sólo se crean los atributos y los métodos necesarios para el problema en
cuestión

• ¿Cuáles son los atributos y métodos para el objeto de coches en cada una de las
siguientes situaciones?
- Sistema de alquiler de coches
- Sistema de un concesionario de coches

- Sistema de la fi Cine mecánica


- sistema DETRAN

Herencia y polimorfismo 5
encapsulación
• El objeto debe ocultar sus datos y los detalles de su
implementación

Fuente: Libro "Orientada a Objetos Análisis y Diseño de Aplicaciones"

Herencia y polimorfismo 6
encapsulación
• Atributos y métodos
- Los métodos forman un "cerco" alrededor de los atributos
- Los atributos no deben ser manejados directamente
- Los atributos sólo deben modificarse o buscaron a través de los métodos del
objeto

Herencia y polimorfismo 7
encapsulación
Métodos públicos

Las llamadas de método

atributos y métodos privados


Herencia y polimorfismo 8
encapsulación
• En una plaza de clase, métodos que deben ser públicas y lo
que debería ser privado?
- traducir
- agrandar

- Mueve el punto

- turno
- Añadir punto
- área de calcular

Herencia y polimorfismo 9
modularidad
• Un sistema debe ser descompuesto en un conjunto altamente cohesivo y débilmente
acoplado objetos

Fuente: Libro "Orientada a Objetos Análisis y Diseño de Aplicaciones"

Herencia y polimorfismo 10
modularidad
• Un programa orientado a objetos es un conjunto de objetos que
colaboran para resolver un problema

• Objetos colaboran a través de llamadas a métodos entre sí

freia
coche

conductor

Herencia y polimorfismo 11
modularidad
• En un sistema académico, hay conceptos estudiante, profesor, tema,
clase y registro. Dónde colocar cada uno de los métodos siguientes:

- la historia de exposición estudiante

- cálculo del promedio de los estudiantes en una clase

- momento de la obtención de una lección

- Descripción del menú de una disciplina


- CR cálculo de un estudiante

Herencia y polimorfismo 12
jerarquía
• Los objetos deben ser organizados en un sistema de forma jerárquica

Fuente: Libro "Orientada a Objetos Análisis y Diseño de Aplicaciones"

Herencia y polimorfismo 13
jerarquía
• Los objetos heredan atributos y métodos de sus antepasados ​en la jerarquía

Fuente: Libro "Orientada a Objetos Análisis y Diseño de Aplicaciones"

Herencia y polimorfismo 14
herencia

• Para hacer que la jerarquía de los objetos, las clases se


organizan en estructuras jerárquicas
- La clase que proporciona los elementos heredados se llama superclase

- La clase heredera se llama subclase


- La subclase puede heredar atributos y métodos de sus superclases

- La subclase puede de fi definir nuevos atributos y métodos

especí fi cos

Herencia y polimorfismo 15
polimorfonucleares fi smo

• Una subclase puede red fi ne (sobrescribir) un método


heredado
- Este mecanismo se llama polimorfonucleares fi smo

- el polimorfonucleares fi SMO está en manos de recodi fi ción de uno o más


métodos heredados por una subclase

- En tiempo de ejecución, el Java sé a qué


aplicación se debe utilizar

Herencia y polimorfismo 16
Ejemplo herencia

vehículo

bicicleta coche barco avión

furgoneta coche camión tractor

lectura de la prueba: " subclase es un superclase . "Ex: coche


es un coche; Tractor es un vehículo; ...

Herencia y polimorfismo 17
Ejemplo herencia (recordando
la clase de coche)

Herencia y polimorfismo 18
Ejemplo herencia (la creación de
un coche inteligente)

• declaración:

• utilizar:

¿De dónde viene?

Herencia y polimorfismo 19
Ejemplo polimorfonucleares fi SMO (la
creación de un coche de carreras)

• declaración:
clase pública se extiende CarroCorrida {coche
CarroCorrida pública (int velocidadeInicial) {

super (velocidadeInicial);
} public void velocidades () {

velocidad = + 5; }}

• utilizar:
¿qué tan rápido
CarroCorrida f1 = new CarroCorrida (10); f1.acelera ();
ahora?

Herencia y polimorfismo 20
compatibilidad de los tipos

• cualquier subclase es compatible con tu superclase


- Sin embargo, el recíproco no es cierto

Car c = new CarroInteligente (20);

coche ✓ c.acelera ();


c.freia ();

CarroInteligente CarroInteligente c = nuevo coche (20);

✗ c.acelera ();
c.freia ();
c.estaciona ();

Herencia y polimorfismo 21
La herencia en Java

• Una clase sólo puede heredar de otra clase (herencia


simple)
• Si la herencia no declarada, clase del grado Hereda
objeto
- su fi ne método toString () que devuelve la
representación cadena el objeto
- Cualquier subclase puede anular el método toString ()
para devolver lo que quiere.
• Ver el resto de los métodos de la clase objeto en
https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html

Herencia y polimorfismo 22
Ejercicio herencia
• En un sistema de taller, hay tres tipos de usuarios: gerente, los empleados y
clientes. Cada usuario tiene un nombre y una contraseña. El cliente tiene, y el
nombre y contraseña, otros datos de registro. El empleado tiene métodos
relacionados con la venta del producto. El administrador puede hacer todo y el
empleado también puede bloquear la caja. ¿Cómo es la jerarquía de herencia
de este sistema con respecto al control de usuario?

Herencia y polimorfismo 23
las interfaces
• tipo especial de clase que no tiene ninguna aplicación
- una interfaz fi ne un protocolo
- Las clases pueden implementar una o más interfaces

• una interfaz es un contrato firmado por una Clase


- la interfaz fi ne las responsabilidades de clase
- Las responsabilidades se asignan métodos
- La clase que implementa la interfaz implementa métodos
- La interfaz contiene sólo los métodos de firma y constantes

Herencia y polimorfismo 24
las interfaces
• la fi una definición de interfaz es similar a una clase
- Usamos la palabra reservada interfaz
- La palabra reservada debe ser seguido por el nombre de la interfaz
- Una interfaz puede heredar de otras interfaces ( se extiende)
- La interfaz contiene sólo métodos sin aplicación (resumen) y
constante

{Cargo interfaz pública

ANO_INICIO int = 1996; doble


calculaTaxa (); } Está implícito que
pública, estático y final

Herencia y polimorfismo 25
ejemplo
se extiende clase pública implementa coche CarroImportado gravable {

<Atributos CarroImportado> <métodos

de CarroImportado>

<Métodos implementados de interfaz gravable>}

Herencia y polimorfismo 26
interfaces de programación orientados

uso

Pila {publicinterface pública


Objeto pop ();
empuje public void (Object o); Tamaño public int (); }

implementación

Herencia y polimorfismo 27
interfaces de programación orientados
adicionaPedido (Pila s) {p = nueva Orden de
pedido (...);
s.push (w); }
conscientes de la
implementación

Pila {publicinterface
pop public Object ();
empuje public void (Object o); Tamaño public int (); }

implementación

Herencia y polimorfismo 28
interfaces de programación orientados

uso

Pila {interfaz pública


pop public Object ();
empuje public void (Object o); Tamaño public int
(); }

desconocido uso

publicclass MyStack implementos pila {


public void push (Object o) {
. . .

Herencia y polimorfismo 29
Las clases abstractas
• Si una clase tiene un método sin aplicación
(resumen), la modi fi er
abstracto Usted debe preceder a su declaración

clase abstracta de coches {

<Atributos de la clase de coche> <métodos comunes de la

clase de automóviles> <métodos abstractos clase de

automóviles>

Herencia y polimorfismo 30
Las clases abstractas

• Ellos no se pueden utilizar para crear instancias de objetos

• Ellos deben ser vistos como plantillas para las subclases que darán una
implementación de los métodos abstractos
• Ejemplo:
- Pago clase abstracta tiene un método abstracto de pago (...)

- clases concretas PagamentoVisa, PagamentoCheque, PagamentoDinheiro


dan comportamiento pagar método de (...)

Herencia y polimorfismo 31
Las clases abstractas

público Pago clase abstracta {


. . .
público de pago abstract void (...); }

publicclass PagamentoVisa extiende pago {


. . .
public void pagados (...) {
// código de pago con tarjeta Visa}}

Herencia y polimorfismo 32
ejercicio
• Vuelva a realizar el ejercicio de la Agenda, que enumera los contactos

ordenados por nombre y edad

- Hacer una oficial de la clase abstracta con la ordenación de la lógica, pero llamar a
un método abstracto compara (persona, persona)
- Crear dos clases adicionales, y OrdenadorNome OrdenadorIdade, heredando
Clasificador e implementar el método abstracto compara (persona, persona)

- Una instancia del funcionario competente para listar los contactos por nombre
y edad

Herencia y polimorfismo 33
ejercicio
• Hacer una clase de animal con un
método abstracto "dice"
• Hacer clases de hombre, perro y
gato, animal heredar, la red fi nir el
método "habla" para volver "Hola",
"Au au" y "Miau", respectivamente
animal

• Crear una matriz de 10 animales y crear


instancias de los hombres, perros y gatos
en este vector hombre perro gato
• Hacer un lazo para todos
animales del vector,
pidiendo para ellos
hablar

Herencia y polimorfismo 34
bibliografía

• Prof. Leonardo Paulino Gresta Murta, Programación Orientada a


Objetos, UFF, Brasil
• Prof. Anselmo Montenegro Programación Orientada a Objetos,
UFF, Brasil
• Instrucciones de programación Java, Deitel y Deitel, Pearson Edición: 9ª

Ed.

• La cabeza primero Java, Kathy Sierra y Bert Bates, Alta Libros, 2ª


Ed., 2012

Organización programas de Java 35

S-ar putea să vă placă și