Un concepto importante en la programación orientada a objetos es la herencia. Proporciona una forma para que los objetos definan relaciones entre sí. Como su nombre indica, un objeto puede heredar características de otro objeto.
En términos más concretos, un objeto puede transmitir su estado y comportamiento a sus hijos. Para que la herencia funcione, los objetos deben tener características comunes entre sí..
En Java, las clases se pueden tomar de otras clases, que se pueden tomar de otros, y así sucesivamente. Esto se debe a que pueden heredar entidades de la clase superior, hasta llegar a la clase Object más alta..
Digamos que hacemos una clase llamada Humano que representa nuestras características físicas. Es una clase genérica que podría representarlo a usted, a mí o a cualquier persona en el mundo. Su estado realiza un seguimiento de cosas como la cantidad de piernas, la cantidad de brazos y el tipo de sangre. Tiene comportamientos como comer, dormir y caminar..
El ser humano es bueno para tener una idea general de lo que nos hace a todos iguales, pero no puede, por ejemplo, contarme sobre las diferencias de género. Para eso, tendríamos que hacer dos nuevos tipos de clase llamados Hombre y Mujer. El estado y los comportamientos de estas dos clases diferirán entre sí de muchas maneras, excepto las que heredan de Human.
Por lo tanto, la herencia nos permite abarcar el estado y los comportamientos de la clase padre en su hijo. La clase secundaria puede extender el estado y los comportamientos para reflejar las diferencias que representa. El aspecto más importante de este concepto para recordar es que la clase secundaria es una versión más especializada del padre.
En la relación entre dos objetos, una superclase es el nombre dado a la clase de la que se hereda. Suena como una clase super duper, pero recuerda que es la versión más genérica. Los mejores nombres para usar podrían ser la clase base o simplemente la clase padre.
Para tomar un ejemplo más real del mundo esta vez, podríamos tener una superclase llamada Persona. Su estado contiene el nombre, la dirección, la altura y el peso de la persona, y tiene comportamientos como ir de compras, hacer la cama y mirar televisión..
Podríamos hacer dos nuevas clases que hereden de Person llamadas Student y Worker. Son versiones más especializadas porque aunque tienen nombres, direcciones, ven televisión y van de compras, también tienen características diferentes entre sí..
El trabajador podría tener un estado que tenga un título de trabajo y lugar de empleo, mientras que el estudiante podría tener datos sobre un área de estudio y una institución de aprendizaje..
Imagine que define una clase de persona:
Persona de clase pública
Se puede crear una nueva clase extendiendo esta clase:
Empleado de clase pública extiende a la Persona
Se dice que la clase Persona es la superclase de la clase Empleado.