Herencia_simple.pdf
-
Upload
eduin-arango-caccha -
Category
Documents
-
view
220 -
download
0
Transcript of Herencia_simple.pdf
![Page 1: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/1.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 1/17
Ing. Felix Huari Algoritmos y Programación 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 miembrode 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 jerarquía de clases.• Una clase derivada hereda todos los miembros de la clase base
y puede acceder a los datos miembros públicos 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.
![Page 2: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/2.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 2/17
Ing. Felix Huari Algoritmos y Programación 2
P.O.O. – HERENCIA SIMPLE
Producto
Codigo
DescripcionStock
ComprobarStock()
AcualizarStock()
Tienda
ClientesProductos
CrearCliente()
CrearProducto()
VenderProducto()
Cliente
RucRazonSocial
BuscarCliente()
ActualizarDatos()
Class cliente
{
private:
char Ruc[11];
char RazonSocial[60];public:
Cliente(char r[], char *rs[]);
………….
………….
};
Sistema Real
![Page 3: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/3.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 3/17
Ing. Felix Huari Algoritmos y Programación 3
Las clases no son suficientes para conseguir los
objetivos de reutilización.
P.O.O. – HERENCIA SIMPLE
Libro
Titulo
AutorNroPaginas
Abrir()
Cerrar()
IrAPagina(n)
LeerPagina(n)
Conocimiento
•Descripción Física
•Opinión
•Comparación con
otras entidades
•Experiencias
Personales
Concepto
“Libro”
![Page 4: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/4.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 4/17
Ing. Felix Huari Algoritmos y Programación 4
La herencia es el segundo concepto central en la programación orientada a objetos.
P.O.O. – HERENCIA SIMPLE
Publicación
RevistaLibro
Medicina EspectáculoDeporte
La herencia hace posible la reusabilidad
![Page 5: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/5.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 5/17
Ing. Felix Huari Algoritmos y Programación 5
P.O.O. – HERENCIA SIMPLE
Los programadores siempre han procurado
evitar la escritura del mismo código dosveces, o reinventar la rueda.
La herencia es la ultima solución para este
tipo de problema y el mas poderoso.
Un nuevo acercamiento poderoso para la
reusabilidad aparece en OOP., la biblioteca de
clases.
![Page 6: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/6.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 6/17
Ing. Felix Huari Algoritmos y Programación 6
La herencia es unacualidad escencial de
los sistemasorientado a objetos.
P.O.O. – HERENCIA SIMPLE
Figura
Figura 3DFigura 2D
Circulo CuboEsfera TetraedroCuadrado Triangulo
La herencia esbásicamente unmecanismo que
utiliza la o.o.p. Paraimplementar
polimorfismo
![Page 7: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/7.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 7/17
Ing. Felix Huari Algoritmos y Programación 7
• Supongamos que se tiene la
clase Persona con los siguientes atributos:
• Nombre
• Domicilio
• Edad
• Estado civil
• En base a la clase Personadefinimos la clase Alumno ,definimos las característicasde Alumno.
• Codigo
• Facultad• Año Ingreso
• El resto las hereda.
P.O.O. – HERENCIA SIMPLE
Codigo
Facultad
Año IngresoEl resto las hereda
Nombre
Direccion
EdadEstado civil
![Page 8: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/8.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 8/17
Ing. Felix Huari Algoritmos y Programación 8
Herencia• Es aquella propiedad de la
programación orientada aobjetos que le permite a unaclase, llamada clasederivada, compartir laestructura y el
comportamiento de otraclase llamada clase base.
P.O.O. – HERENCIA SIMPLE
Clase Base
Clase Derivada
![Page 9: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/9.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 9/17
Ing. Felix Huari Algoritmos y Programación 9
• Superclase . - Es la clase de la cual
heredan otras clases. Representan una generalización de las subclases. Sedenomina también clases bases o clases
padres.
• Subclase .- Es la clase que hereda de unao mas clases. Representan una
especialización de la clase base. Sedenomina también clase derivada o claseshijas.
• B es una clase derivada de A
P.O.O. – HERENCIA SIMPLE
Clase A
Clase B
![Page 10: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/10.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 10/17
Ing. Felix Huari Algoritmos y Programación 10
DECLARACION DE UNA CLASE DERIVADA
class <Nombre clase derivada>: <Acceso> <Nombre clase base>
{ private/protected:
<Tipo dato > <Datos Miembros>;
public:
<Funciones Miembros>;
};
Donde el acceso puede ser:
• 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 laclase derivada y los miembros protected de la clase base son
protected en la clase derivada.
P.O.O. – HERENCIA SIMPLE
![Page 11: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/11.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 11/17
Ing. Felix Huari Algoritmos y Programación 11
DECLARACION DE UNA CLASE DERIVADA
class <Nombre clase derivada>: <Acceso> <Nombre clase base>
{ private/protected:
<Tipo dato > <Datos Miembros>;
public:
<Funciones Miembros>;
};
Donde el acceso puede ser:
• 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 laclase derivada y los miembros protected de la clase base son
protected en la clase derivada.
P.O.O. – HERENCIA SIMPLE
![Page 12: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/12.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 12/17
Ing. Felix Huari Algoritmos y Programación 12
//Dada una clase llamada Coche y la subclase Recorrido, se pide implementar el programa usando Herencia
#include <iostream>
#include <string.h>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();
Coche(char *,char *,int);
void Read();
void Mostrar();
};
P.O.O. – HERENCIA SIMPLE
![Page 13: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/13.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 13/17
Ing. Felix Huari Algoritmos y Programación 13
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
//Programa princiapal
int main()
{ int ayo,millas,galon;char placa[15],marca[25];
Inicia(millas,galon,placa,marca,ayo);
Recorrido P;
P.Mostrar();
P.O.O. – HERENCIA SIMPLE
![Page 14: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/14.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 14/17
Ing. Felix Huari Algoritmos y Programación 14
P=Recorrido(millas,galon,placa,marca,ayo);
P.Mostrar();
P.Read(); P.Mostrar(); system("pause");
}
void Inicia(int &mi,int &ga,char *pl,char *ma,int &af)
{ cout<<"Marca del Coche...";gets(ma);
cout<<"Numero Placa......";gets(pl);
cout<<"Año Fabricacion.. ";cin>>af;
cout<<"Millas recorridas.. ";cin>>mi;
cout<<"Galones Consumidos...";cin>>ga;
}
Coche::Coche()
{ afab=0;placa[0]='\0';
marca[0]='\0';
}
P.O.O. – HERENCIA SIMPLE
![Page 15: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/15.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 15/17
Ing. Felix Huari Algoritmos y Programación 15
Coche::Coche(char *pl, char *ma, int af)
{ strcpy(placa,pl); strcpy(marca,ma);
afab=af;
}
void Coche::Read()
{ cout<<"LECTURA DE DATOS"<<endl;
cout<<"Numero Placa......";gets(placa);
cout<<"Marca del Coche...";gets(marca);
cout<<"Año Fabricacion.. ";cin>>afab;
}
void Coche::Mostrar()
{ cout<<"Marca del Coche..."<<marca<<endl;cout<<"Numero Placa......"<<placa<<endl;
cout<<"Año Fabricacion.. "<<afab<<endl;
}
P.O.O. – HERENCIA SIMPLE
![Page 16: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/16.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 16/17
Ing. Felix Huari Algoritmos y Programación 16
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();
cout<<"Millas recorridas.. ";cin>>millas;
cout<<"Galones Consumidos...";cin>>glncons;
}
P.O.O. – HERENCIA SIMPLE
![Page 17: Herencia_simple.pdf](https://reader030.fdocuments.co/reader030/viewer/2022020804/563db91e550346aa9a9a316e/html5/thumbnails/17.jpg)
7/17/2019 Herencia_simple.pdf
http://slidepdf.com/reader/full/herenciasimplepdf 17/17
Ing. Felix Huari Algoritmos y Programación 17
void Recorrido::Mostrar()
{ Coche::Mostrar();
cout<<"Millas recorridas.. "<<millas<<endl;
cout<<"Galones Consumidos..."<<glncons<<endl;
}
P.O.O. – HERENCIA SIMPLE