La herencia es un concepto fundamental en la programación orientada a objetos (POO) que permite crear nuevas clases basadas en clases existentes. Una clase derivada hereda atributos y métodos de la clase base, lo que permite la reutilización de código y la creación de jerarquías de clases.
La herencia se declara utilizando la palabra clave class
seguida del nombre de la clase derivada, seguido de :
y el tipo de acceso (public, protected o private) para la herencia.
class ClaseBase {
// atributos y métodos de la clase base
};
class ClaseDerivada : [tipo_de_acceso] ClaseBase {
// atributos y métodos adicionales
};
Clase Base (Superclase): Es la clase existente de la cual se derivan otras clases. Contiene atributos y métodos que las clases derivadas pueden heredar.
Clase Derivada (Subclase): Es una nueva clase que se basa en una clase existente. Hereda atributos y métodos de la clase base y también puede agregar nuevos atributos y métodos o modificar los existentes.
#include <iostream>
#include <string>
using namespace std;
class Vehiculo {
protected:
string marca;
public:
Vehiculo(string m) : marca(m) {}
void mostrarMarca() {
cout << "Marca: " << marca << endl;
}
};
class Coche : public Vehiculo {
private:
int numPuertas;
public:
Coche(string m, int puertas) : Vehiculo(m), numPuertas(puertas) {}
void mostrarInfo() {
mostrarMarca();
cout << "Número de puertas: " << numPuertas << endl;
}
};
int main() {
Coche miCoche("Mitsubishi", 4);
miCoche.mostrarInfo();
return 0;
}
En este ejemplo, Vehiculo
es la clase base y Coche
es la clase derivada. La clase Coche
hereda el atributo marca
de la clase base y agrega el atributo numPuertas
. La función miembro mostrarInfo()
de la clase Coche
llama a la función miembro mostrarMarca()
de la clase base.
Pueder ir al artículo principal:
Códigos Sencillos hechos en C++