Herencia Simple
-
Upload
pacheco-jean-carlos-yeahh -
Category
Documents
-
view
247 -
download
1
description
Transcript of Herencia Simple
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 1
P.O.O. HERENCIA SIMPLE
Una clase derivada es un tipo de dato definido por el usuario que tiene la propiedad de heredar datos y funciones miembro de uno o
mas clases, definidas previamente.
La clase inicial usada como clase base para la clase derivada se conoce como clase base, padre o superclase.
La clase derivada se conoce como derivada, hija o subclase.
Una clase derivada puede a su vez ser una clase base, dando lugar a la jerarqua de clases.
Una clase derivada hereda todos los miembros de la clase base y puede acceder a los datos miembros pblicos y protegidos de la
clase base como si fueran miembros de ella misma.
Una clase derivada no tiene acceso a los miembros privados de la clase base.
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 2
P.O.O. HERENCIA SIMPLE
Producto
Codigo
Descripcion
Stock
ComprobarStock()
AcualizarStock()
Tienda
Clientes
Productos
CrearCliente()
CrearProducto()
VenderProducto()
Cliente
Ruc
RazonSocial
BuscarCliente()
ActualizarDatos()
Class cliente
{
private:
char Ruc[11];
char RazonSocial[60];
public:
Cliente(char r[], char *rs[]);
. . };
Sistema Real
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 3
Las clases no son suficientes para conseguir los objetivos de reutilizacin.
P.O.O. HERENCIA SIMPLE
Libro
Titulo
Autor
NroPaginas
Abrir()
Cerrar()
IrAPagina(n)
LeerPagina(n)
Conocimiento
Descripcin Fsica Opinin Comparacin con otras entidades
Experiencias Personales
Concepto
Libro
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 4
La herencia es el segundo concepto central en la programacin orientada a objetos.
P.O.O. HERENCIA SIMPLE
Publicacin
Revista Libro
Medicina Espectculo Deporte
La herencia hace posible la reusabilidad
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 5
P.O.O. HERENCIA SIMPLE
Los programadores siempre han procurado evitar la escritura del mismo
cdigo dos veces, o reinventar la
rueda.
La herencia es la ultima solucin para este tipo de problema y el mas
poderoso.
Un nuevo acercamiento poderoso para la reusabilidad aparece en OOP., la
biblioteca de clases.
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 6
La herencia es una cualidad esencial de los sistemas orientado a objetos.
P.O.O. HERENCIA SIMPLE
Figura
Figura 3D Figura 2D
Circulo Cubo Esfera Tetraedro Cuadrado Triangulo
La herencia es bsicamente un mecanismo que utiliza la o.o.p. Para implementar polimorfismo
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 7
Supongamos que se tiene la clase Persona con los siguientes atributos: Nombre Direccion Edad Estado civil
En base a la clase Persona definimos la clase Alumno, definimos las caractersticas de Alumno. Codigo Facultad Ao Ingreso El resto las hereda.
P.O.O. HERENCIA SIMPLE
Codigo
Facultad
Ao Ingreso
El resto las hereda
Nombre
Direccion
Edad
Estado civil
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 8
Herencia
Es aquella propiedad de la programacin orientada a objetos que le permite a una clase, llamada clase derivada, compartir la estructura y el comportamiento de otra clase llamada clase base.
P.O.O. HERENCIA SIMPLE
Clase Base
Clase Derivada
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 9
Superclase. - Es la clase de la cual heredan otras clases. Representan una generalizacin de las subclases. Se denomina tambin clases bases o clases padres.
Subclase.- Es la clase que hereda de una o mas clases. Representan una especializacin de la clase base. Se denomina tambin clase derivada o clases hijas.
B es una clase derivada de A
P.O.O. HERENCIA SIMPLE
Clase A
Clase B
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 10
DECLARACION DE UNA CLASE DERIVADA
class : [,,..]
{ private/protected:
;
public:
;
};
Donde el acceso puede ser:
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 11
private: Los miembros public y protected de la clase base son privados en la clase derivada.
protected: Los miembros public y protected de la clase base son protected en la clase derivada.
public: Los miembros public de la clase base son public en la clase derivada y los miembros protected de la clase base son protected en la clase derivada.
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 12
//Dada una clase llamada Coche y la subclase Recorrido, se pide implementar el programa usando Herencia
#include
#include
using namespace std;
void Inicia(int &,int &,char *,char *,int&);
//Declaracion de la clase
class Coche
{ private:
char placa[15],marca[25];
int afab;
public:
Coche();
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 13
Coche(char *,char *,int);
void Read();
void Mostrar();
};
class Recorrido : public Coche
{ private:
int millas,glncons;
public:
Recorrido();
Recorrido(int, int, char *, char *, int);
void Read();
void Mostrar();
};//Fin de la subclase Recorrido
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 14
//Programa princiapal
int main()
{ int ayo,millas,galon;
char placa[15],marca[25];
Inicia(millas,galon,placa,marca,ayo);
Recorrido P;
P.Mostrar();
P=Recorrido(millas,galon,placa,marca,ayo);
P.Mostrar();
P.Read(); P.Mostrar();
}
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 15
void Inicia(int &mi,int &ga,char *pl,char *ma,int &af)
{ cout
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 16
Coche::Coche(char *pl, char *ma, int af)
{ strcpy(placa,pl); strcpy(marca,ma); afab=af;
}
void Coche::Read()
{ cout
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 17
Recorrido::Recorrido()
{ millas=0; glncons=0;
}
Recorrido::Recorrido(int mi,int ga,char *pl,char *ma,int af):Coche(pl, ma, af)
{ millas=mi; glncons=ga;
}
void Recorrido::Read()
{ Coche::Read();
coutmillas;
coutglncons;
}
P.O.O. HERENCIA SIMPLE
-
A L G O R I T M O S Y E S T R U C T U R A D E D A T O S 18
void Recorrido::Mostrar()
{ Coche::Mostrar();
cout