Tema 4 (2021)
2 participantes
Página 1 de 1.
Tema 4 (2021)
Estudiantes de la carrera de Ingeniería en Informática, asignatura: Programación Orientada a Objetos, pueden hacer sus aportaciones, participando en este foro, contestando al menos uno de los siguientes reactivos, temas o competencias:
Tema 4.- Herencia y polimorfismo
Competencia Específica: Comprende y aplica los conceptos de herencia y polimorfismo en programas que utilicen clases base, clases derivadas, clases abstractas e interfaces.
Subtemas:
4.1.- Concepto de herencia y polimorfismo.
4.1.1.- Investigar diferentes tipos de clases que existen, así como los conceptos de herencia y polimorfismo y presentar un mapa mental acerca de ello.
4.2.- Definición de una clase base.
4.3.- Definición de una clase derivada.
4.4.- Clases abstractas.
4.4.1.- Programar clases abstractas para la solución de un problema utilizando clases derivadas para la implementación de métodos abstractos de la clase base, presentando un fragmento de código fuente, que se haya generado.
4.5.- Interfaces.
4.5.1.- Definición
4.5.2.- Implementación.
4.5.3.- Variable polimórficas
4.5.3.1.- Crear aplicaciones que implementen polimorfismo con el uso de interfaces, presentando un fragmento de código fuente, que se haya generado.
4.6.- Reutilización de la definición de paquetes/librerías
4.7.- Desarrollar aplicaciones que implementen el concepto de herencia a partir de un modelo de clases que la utilice al menos una clase base y al menos una clase derivada, presentando un fragmento de código fuente, que se haya generado.
ATTE: M.C. Edgar Rangel Lugo.
Tema 4.- Herencia y polimorfismo
Competencia Específica: Comprende y aplica los conceptos de herencia y polimorfismo en programas que utilicen clases base, clases derivadas, clases abstractas e interfaces.
Subtemas:
4.1.- Concepto de herencia y polimorfismo.
4.1.1.- Investigar diferentes tipos de clases que existen, así como los conceptos de herencia y polimorfismo y presentar un mapa mental acerca de ello.
4.2.- Definición de una clase base.
4.3.- Definición de una clase derivada.
4.4.- Clases abstractas.
4.4.1.- Programar clases abstractas para la solución de un problema utilizando clases derivadas para la implementación de métodos abstractos de la clase base, presentando un fragmento de código fuente, que se haya generado.
4.5.- Interfaces.
4.5.1.- Definición
4.5.2.- Implementación.
4.5.3.- Variable polimórficas
4.5.3.1.- Crear aplicaciones que implementen polimorfismo con el uso de interfaces, presentando un fragmento de código fuente, que se haya generado.
4.6.- Reutilización de la definición de paquetes/librerías
4.7.- Desarrollar aplicaciones que implementen el concepto de herencia a partir de un modelo de clases que la utilice al menos una clase base y al menos una clase derivada, presentando un fragmento de código fuente, que se haya generado.
ATTE: M.C. Edgar Rangel Lugo.
4.2.- Definición de una clase base.
Una clase base es aquella que no dependen ninguno de sus atributos u objetos de la clase de alguna otra clase, se diría que en términos de herencia, sería la clase padre, la clase que se mantiene fija, en el aspecto de herencia
Angel_Jim_2A6- Mensajes : 5
Fecha de inscripción : 23/03/2021
Clases base y derivadas.
La herencia y el polimorfismo son los mecanismos que utilizan los lenguajes de programación para implementar relaciones de especialización y operaciones polimórficas, respectivamente.
Una relación de especialización indica que una clase base (o clase Padre), que tiene una cierta cantidad de atributos y operaciones, se vuelve algo más concreto y se especializa en una clase derivada. Un ejemplo de esto es la relación entre una persona y un estudiante. Una persona tiene nombre y fecha de nacimiento, pero un estudiante, además, está asociado con una escuela, tiene un No. de control, entre otras cosas, por lo que el estudiante es una especialización de una persona.
Una clase base es, entonces, la clase que hereda sus características a otra, y la clase derivada es la que obtiene las características de la clase base, añadiendo sus propias características.
Una relación de herencia con base en un concepto orientado a objetos sostiene que la ClaseDerivada “es-un” ClaseBase. En C++, para este tipo de relaciones se utiliza el modificador de acceso public. También están disponibles private y protected, pero son utilizados para realizar herencia de implementación (implementar una clase Hija en términos de la clase Padre). Los modificadores de acceso hacen lo siguiente:
Un ejemplo de este tipo de herencia se da a continuación.
Herencia simple: Estudiante es-un(a) Persona
Una relación de especialización indica que una clase base (o clase Padre), que tiene una cierta cantidad de atributos y operaciones, se vuelve algo más concreto y se especializa en una clase derivada. Un ejemplo de esto es la relación entre una persona y un estudiante. Una persona tiene nombre y fecha de nacimiento, pero un estudiante, además, está asociado con una escuela, tiene un No. de control, entre otras cosas, por lo que el estudiante es una especialización de una persona.
Una clase base es, entonces, la clase que hereda sus características a otra, y la clase derivada es la que obtiene las características de la clase base, añadiendo sus propias características.
Una relación de herencia con base en un concepto orientado a objetos sostiene que la ClaseDerivada “es-un” ClaseBase. En C++, para este tipo de relaciones se utiliza el modificador de acceso public. También están disponibles private y protected, pero son utilizados para realizar herencia de implementación (implementar una clase Hija en términos de la clase Padre). Los modificadores de acceso hacen lo siguiente:
- public: los identificadores de la clase Padre pueden ser vistos desde cualquier ámbito (excepto los que sean marcados como private o protected).
- private: los identificadores de la clase Padre pueden ser vistos desde la clase que hereda.
- protected: los identificadores de la clase Padre pueden ser vistos desde la clase que hereda y sus especializaciones.
Un ejemplo de este tipo de herencia se da a continuación.
Herencia simple: Estudiante es-un(a) Persona
- Código:
#include <iostream>
class Persona
{
private:
const char *nombreCompleto;
public:
const char *obtenerNombreCompleto(){return nombreCompleto;}
void establecerNombreCompleto(const char* nombreNuevo){nombreCompleto = nombreNuevo;}
};
class Estudiante: public Persona
{
private:
int numeroDeControl;
public:
void establecerNumeroDeControl(int numeroNuevo){numeroDeControl = numeroNuevo;}
int obtenerNumeroDeControl(){return numeroDeControl;}
};
main(){
Estudiante s;
s.establecerNombreCompleto("Fulanito de tal");
s.establecerNumeroDeControl(20930185);
std::cout << "Nombre: " << s.obtenerNombreCompleto()
<< std::endl << "Numero de control: "
<< s.obtenerNumeroDeControl() << std::endl;
}
Ivan_MP_2B6- Invitado
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.