Herencia_simple.pdf

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 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 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.

Transcript of Herencia_simple.pdf

Page 1: Herencia_simple.pdf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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