Herencia es un concepto fundamental en la programación orientada a objetos que permite crear nuevas clases a partir de clases existentes.
La nueva clase hereda todas las propiedades y comportamientos de la clase padre, y puede agregar o sobreescribir estas características según sea necesario.
La herencia permite la reutilización del código, lo que significa que no es necesario escribir de nuevo el código en cada nueva clase. Además, la herencia ayuda a organizar y estructurar el código de manera más eficiente y fácil de mantener.
Se puede decir que, la herencia es una relación entre clases que permite la transmisión de propiedades y comportamientos de una clase a otra, facilitando la reutilización y la organización del código.
Ejemplo de Herencia en Delphi
type
// Clase padre "Vehículo"
TVehiculo = class
private
FMarca: string;
FModelo: string;
FAño: Integer;
public
procedure Acelerar; virtual;
procedure Frenar; virtual;
property Marca: string read FMarca write FMarca;
property Modelo: string read FModelo write FModelo;
property Año: Integer read FAño write FAño;
end;
// Clase hija "Automóvil"
TAutomovil = class(TVehiculo)
private
FCantidadPuertas: Integer;
public
procedure Acelerar; override;
procedure Frenar; override;
property CantidadPuertas: Integer read FCantidadPuertas write FCantidadPuertas;
end;
implementation
procedure TVehiculo.Acelerar;
begin
// Acción de acelerar
end;
procedure TVehiculo.Frenar;
begin
// Acción de frenar
end;
procedure TAutomovil.Acelerar;
begin
// Acción de acelerar específica para un automóvil
end;
procedure TAutomovil.Frenar;
begin
// Acción de frenar específica para un automóvil
end;
En este ejemplo, la clase “Vehículo” es la clase padre y contiene los atributos y métodos comunes.
La clase “Automóvil” es la clase hija y hereda de la clase “Vehículo“.
La clase “Automóvil” también puede añadir atributos y métodos específicos, como la cantidad de puertas, y puede sobreescribir los métodos de la clase padre, como “Acelerar” y “Frenar“.
En resumen, la herencia es uno de los pilares de la programación orientada a objetos y es una herramienta valiosa para modelar la relación de “es un” entre objetos, reutilizar código y organizar de manera efectiva las clases y objetos en una aplicación.