You are on page 1of 25

INTEGRANTES

Ma. Ignacia Williams


Ral Chapa
Rodrigo Cabrera
Sebastin Caldern
Andrs Mcvey
Carolina Cornejo
Nicols Sigala
Macarena Burdiles
OBJETO
3
El concepto de objeto puede extenderse
prcticamente a cualquier cosa, tanto real como
ficticia o imaginaria. En el contexto de la
programacin Orientada a Objetos, se refiere a
algo que posea estado, comportamiento e
identidad. Su estado y comportamiento se
definen en una clase comn. Por tanto, una
clase podra tener muchos objetos de su tipo,
pero sin embargo un objeto solo podr
pertenecer a una clase.
CLASE
4
Se trata de realizar una abstraccin denominada
clase, esta permite la agrupacin de objetos que
comparten las mismas propiedades y
comportamiento. No se debe olvidar que la clase
es una generalizacin de objeto.
Vehculo
Punto
Figura
Animal
(1,3)
(2,2)
(2,1)
(5,2.5)
Las clases y los objetos estn en
todas partes
HERENCIA
Es la derivacin de una clase a partir de otra
existente. Otras formas de decirlo son heredar
la clase o extender la clase.
El objetivo es la reutilizacin del software
desarrollado.
La herencia aplica en relaciones de naturaleza B
es un tipo de A
De esta manera se pueden generar clases ms
especializadas a partir de las ya existentes.
6
HERENCIA
7
public class Persona {

private String rut;
private String nombre;

public void setRut(String r){
rut = r; }
public String getRut(){
return rut; }
public void setNombre(String n){
nombre = n; }
public String getNombre(){
return nombre; }
}
public class Alumno{
private String rut;
private String nombre;
private String rolUCV;

public void setRut(String r){
rut = r; }
public String getRut(){
return rut; }
public void setNombre(String n){
nombre = n; }
public String getNombre(){
return nombre; }
public void setRolUCV(String r){
rolUCV = r; }
public String getRolUCV(){
return rolUCV; }
}
Alumno es un tipo de Persona. Se podra
aplicar herencia y as ahorrar cdigo,
reutilizando la clase Persona. Alumno sera una
especializacin de Persona.
SUPERCLASES Y SUBCLASES
Una clase derivada de otra clase recibe
tambin el nombre de subclase o clase hija.
La clase de la cual se deriva una subclase se
denomina clase base, superclase o clase
padre.
8
Superclase
Clase base
Clase padre
Subclase
Clase derivada
Clase hija
Vehculos de carga
Camin
HERENCIA SIMPLE
Una clase es subclase de una nica
superclase.
9
Vehculos de carga
Camin
HERENCIA MLTIPLE
Una clase es subclase de ms de una superclase.
10
Vehculos
terrestres
Vehculos
anfibios
Vehculos
acuticos
JERARQUAS DE HERENCIA
La herencia organiza clases bases y derivadas en
jerarquas de clases.


Una subclase hereda las propiedades de la
respectiva superclase.


Una subclase, respecto de su superclase:
Agrega nuevas propiedades
Modifica propiedades heredadas
11
IMPLEMENTACIN DE
JERARQUAS DE HERENCIA
Ejemplo:
EI I - 1 4 7 I NT ROD. T . I .
12
Persona
Alumno
Atributos:
- RUT
- Nombre


Operaciones:
-set y get RUT
- set y get Nombre

Atributos:
- RUT
- Nombre
- Rol UCV

Operaciones:
-set y get RUT
- set y get Nombre
- set y get Rol UCV
ABUSO DE HERENCIA
AGREGADO CONFUNDIDO:
Supongamos que se quiere representar un
avin y sus componentes. Una forma
podra ser:
13
Avin


Motor


Cola


Ala


Fuselaje


Si se lee el diagrama tal como est, dice que Cola es un
tipo de Avin y tambin que Ala es un tipo de Avin. Esto
est malo.
ABUSOS DE HERENCIA:
AGREGADO CONFUNDIDO
Otra forma para representar al avin podra ser:
14
Motor


Cola


Ala


Fuselaje


Avin


Aqu se muestra la herencia mltiple como otra forma de
solucin. El diagrama dice que un Avin es
simultneamente un tipo de Ala, un tipo de Cola, un tipo
de Motor, y un tipo de Fuselaje. Y esto est malo.
ABUSOS DE HERENCIA:
AGREGADO CONFUNDIDO
En realidad, el diseador ha confundido los conceptos herencia
de clase y composicin de objetos. Un avin se compone de:
dos Alas, un Motor, un Fuselaje y una cola.
EI I - 1 4 7 I NT ROD. T . I .
15
Avin
Motor Ala Fuselaje Cola
Avin
alaIzq, alaDer: Ala
cola: Cola
motor: Motor
fuselaje: Fuselaje


ABUSOS DE HERENCIA:
JERARQUA INVERTIDA
Supongamos que se quiere representar una jerarqua con los 3
tipos de cargos en una empresa. Una posible forma sera:
16
Director
Administrador
Empleado
Ms bien parece un organigrama. Un
empleado no es un tipo de Administrador,
sino que al revs, as como un
Administrador no es un tipo de Director.
Esto est malo. La solucin es invertir la
jerarqua, pues Empleado es la clase ms
general.
TIPOS DE HERENCIA
17
Especializacin Generalizacin
POLIMORFISMO
QU ES POLIMORFISMO?
El polimorfismo se refiere a la capacidad para que varias clases
derivadas de una antecesora utilicen un mismo mtodo de forma
diferente.
19
EJEMPLO
Tenemos:
Clase: Mamferos
Operacin: Comer
Subclase1: Vaca
Subclase 2: Len
Ambas clases realizan la operacin comer pero de manera
distinta
EJEMPLO CDIGO
using namespace std;

class figura {
private:
float base;
float altura;
public:
void captura();
virtual unsigned float
perimetro()=0;
virtual unsigned float area()=0;
};

class rectangulo: public figura{
public:
void imprime();
unsigned float perimetro(){return
2*(base+altura);}
unsigned float area(){return
base*altura;}
};

class triangulo: public figura{
public:
void muestra();
unsigned float perimetro(){return
2*altura+base}
unsigned float area(){return
(base*altura)/2;}
};

void figura::captura(){
cout<<"CALCULO DEL AREA Y
PERIMETRO DE UN TRIANGULO ISSCELES
Y UN RECTANGULO:" <<endl;
cout<<"escribe la altura: ";
cin>>altura;
cout<<"escribe la base: ";
cin>>base;
cout<<"EL PERIMETRO ES:" <<
perimetro();
cout<<"EL AREA ES:" << area();
};

21
CLASES DE POLIMORFISMO
Polimorfismo Paramtrico:
Es aqul en el que el cdigo no incluye ningn tipo de
especificacin sobre el tipo de datos sobre el que se trabaja.

Polimorfismo Ad-Hoc:
Es aqul en el que los tipos a los que se aplica el polimorfismo
deben ser explicados y declarados uno por uno antes de poder
ser utilizados.

22
FUNCIONES POLIMRFICAS Y
TIPOS POLIMRFICOS
El concepto de polimorfismo puede ser aplicado tanto a
funciones como a tipos de datos. As es como nacen los
conceptos de funciones polimrficas junto con los tipos
polimrficos.

Las funciones polimrficas son aquellas que pueden ser
evaluadas o ser aplicadas en diferentes tipos de datos de
manera indistinta.

Los tipos polimrficos son aquellos tipos de datos que
contienen al menos un elemento cuyo tipo no est
especificado.

23
NO CONFUNDIRSE CON
SOBRECARGA

La sobrecarga se da siempre dentro de una sola
clase, mientras que el polimorfismo se da entre clases
distintas.

Un mtodo est sobrecargado si dentro de una
clase existen dos o ms declaraciones de dicho
mtodo con el mismo nombre pero con parmetros
distintos.

La sobrecarga se resuelve en tiempo de compilacin
utilizando los nombres de los mtodos y los tipos de
sus parmetros; el polimorfismo se resuelve en tiempo
de ejecucin del programa, esto es, mientras se
ejecuta, en funcin de que clase pertenece un objeto.

24
FIN

You might also like