La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.

Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad. [1]

Tabla de Contenidos

Esquema

Si se tienen dos clases C1 y C2, y ambas poseen elementos similares (atributos y métodos), es posible crear una clase denominada B, la cual utilizará dichos elementos. Las clases C1 y C2, serán más pequeñas teniendo atributos y métodos únicos para sí..

En este caso C1 y C2 heredarán de la clase B, ésta clase será denominada «clase base» o «superclase». Mientras que las otras se denominarán «clases derivadas» o «subclases». Las superclases son generalidades o abstracciones, mientras que las subclases son clases especializadas.

caso1
Clases con elementos comúnes

 

Una vez se extraen los atributos comúnes se tiene lo siguiente:

caso2
Clases heredadas de otra

Referencia

[1] http://es.ccm.net/contents/411-poo-herencia