Clase abstracta POO
Enviado por Carlos Fregoso • 15 de Mayo de 2023 • Apuntes • 717 Palabras (3 Páginas) • 23 Visitas
[pic 1]
Introducción
En este trabajo se investigará los concepto y funcionamiento de la clase abstracta y de la interfaz de C++.De esta manera al investigar realizaremos un programa tipo ejemplo de cada concepto para poder comprender de una mejor manera su utilidad y su funcionamiento.
- Clase Abstracta
En la programación orientada a objetos, las clases abstractas se utilizan para representar conceptos generales o abstractos que sirven como base para otras clases más específicas.
También esta clase no puede ser instanciada directamente, es decir, no se pueden crear objetos a partir de ella. En su lugar, se utiliza como base para definir otras clases concretas que sí pueden ser instanciadas
Una clase abstracta puede contener atributos y métodos, pero al menos uno de los métodos debe ser un método virtual puro, que se define con la sintaxis "= 0" después de la firma del método. Un método virtual puro no tiene implementación en la clase abstracta y debe ser implementado en las clases derivadas.
Las clases abstractas son útiles para definir interfaces comunes para diferentes clases y para asegurar que todas las clases derivadas implementen ciertos métodos. Además, permiten encapsular cierta funcionalidad y ocultar los detalles de implementación de las clases derivadas.
Para definir una clase abstracta en C++, se utiliza la palabra clave "class" seguida por el nombre de la clase, y se coloca "= 0" después de la firma del método virtual puro.
Ejemplo:
#include <iostream>
using namespace std;
class Animal {
public:
virtual void emitirSonido() = 0;
virtual void moverse() = 0;
};
class perro : public Animal {
public:
void emitirSonido() {
cout << "El perro hace guau guau" << endl;
}
void moverse() {
cout << "El perro corre" << endl;
}
};
class pajaro : public Animal {
public:
void emitirSonido() {
cout << "El pajaro hace cucurucu" << endl;
}
void moverse() {
cout << "El pajaro vuela" << endl;
}
};
int main() {
perro obj;
pajaro obji;
obj.emitirSonido();
obj.moverse();
obji.emitirSonido();
obji.moverse();
...