La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.

Presentaciones similares


Presentación del tema: "Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia."— Transcripción de la presentación:

1 Prof. Manuel B. Sánchez

2 Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia permite: Adoptar automáticamente características ya implementadas, con lo cual se ahorra tiempo y espacio al no tener que programar toda la clase desde cero. Adoptar automáticamente características ya probadas, con lo cual se ahorra tiempo al no tener que probar y depurar las características heredadas. La nueva clase puede cambiar algunas funcionalidades de la clase heredada La Herencia y el Polimorfismo es una de las mayores ventajas que tiene POO sobre la Programación Estructurada y permiten escribir programas fáciles de modificar La herencia también permite crear jerarquías entre clases de objetos.

3 Cuando hay suficientes similitudes. Todas las características de la clase existente o la mayoría de ellas, son adecuadas para la nueva clase. En la nueva clase se ampliará y/o redefinirá el conjunto de características. La nueva clase definida a partir de la clase existente, adopta todos los miembros de la clase existente: atributos métodos

4

5

6 Clase base: La clase base es la clase ya creada, de la que se hereda. También se la denomina clase madre o superclase. Clase derivada: es la clase que se crea a partir de la clase base. Se dice que es la clase que hereda. También se la denomina clase hija o subclase. Vehiculo es la clase base de Particular DosDimensiones es la clase base de Circulo Figura es una superclase de Circulo Alumno es una subclase de Persona

7 En C++ se utiliza el operador “:” para crear una clase heredara de la siguiente forma: La clase NombreHija hereda todas las características y funcionalidades de la clase NombreMadre. puede ser: public: los datos públicos en la clase base siguen siendo públicos en la hija private: los datos públicos en la clase base pasan a ser privados en la clase hija. protected: los datos públicos en la clase base pasan a ser protegidos en la clase hija. puede ser: public: los datos públicos en la clase base siguen siendo públicos en la hija private: los datos públicos en la clase base pasan a ser privados en la clase hija. protected: los datos públicos en la clase base pasan a ser protegidos en la clase hija. Los constructores no son heredados, por esa razón es necesario implementar nuevos constructores para las clases hijas Operador para indicar la herencia de clases Nombre de la Clase de la cual se hereda La clase que hereda puede definir nuevos métodos, así como redefinir o anular métodos existentes en la clase base

8 Los objetos de la clase VehiculoCarga se crean de la misma forma que se ha visto anteriormente. Los objetos VehiculoCarga tienen los siguientes atributos: dueño, placa, capacidadCarga, tara y carga Para que los atributos heredados sean inicializados de forma correcta es necesario llamar de manera explicita al constructor del padre, lo cual, en este caso no se ha hecho. Un VehiculoCarga sigue siendo un Vehiculo, pero lo contrario no siempre se cumple Los mensajes que se le pueden enviar a un objeto VehiculoCarga son: caracteristicas() y cargar() En esta clase hemos redefinido el comportamiento del método caracteristicas() definido en el padre

9 En Programación Orientada a Objetos existen dos tipos de herencia. Herencia Simple: Es aquella donde la clase derivada toma propiedades y comportamientos de una sola clase base. Herencia Múltiple: La clase derivada toma propiedades y comportamientos de más de una clase base, la forma básica de la herencia sigue siendo igual.

10 class Persona { char nombre[20]; int edad; public: Persona(): Persona(“”,0) { } Persona (char n[], int e) { strcpy(nombre,n); edad = e; } }; class Alumno : public Persona { int curso; char nivelAcademico[20]; public: Alumno (char n[], int e, int c, char nivel[]): Persona(n, e) { curso = c; strcpy(nivelAcademico, nivel); } }; Llamada a un constructor sobrecargado que se encuentra en la misma clase Se invoca al constructor paramétrico de la clase Base, en este caso, la clase Persona. Se asignan los atributos propios de la clase hija

11 class Persona { char nombre[20]; int edad;................... public: void mostrar() { cout << nombre << ”:”<< edad; } void setEdad(int e) { edad = e; } }; class Alumno: public Persona { int curso; char nivelAcademico[20];................... public: void mostrar() { Persona::mostrar(); cout << ”:”<< curso << ”:” << nivelAcademico; } void setCurso(int c) { curso = c; } }; Se define un método mostrar que muestra las propiedades de la clase en una misma línea separadas por “:” Se sobreescribe el método mostrar de la clase base para incorporar los nuevos atributos Se invoca al método mostrar de la clase base para que haga el trabajo con los atributos de la super clase, para ello se utiliza el operador de ambito :: Mostramos los datos del hijo para completar la información de la clase La redefinición de métodos se conoce con el nombre de sobrecarga y es la base para el polimorfismo por sobrecarga de métodos


Descargar ppt "Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia."

Presentaciones similares


Anuncios Google