Cuando hice un cursillo de java nos dieron una lista aditiva de cuando se podría heredar, como una guía de cuando esta bien que se herede y que no se use por el mero hecho de reutilizar código...
+ Cuando está seguro de que cumple la relación ...
es un ...
p.ej.: un zafral no es un empleado (le faltan beneficios, no tiene aumentos de sueldo, etc.)
+ Cuando está seguro de que toda la funcionalidad heredada tiene sentido
p.ej.: si “Documento” incluye un método “entregarMercadería” los “Recibos” no podrán heredar de dicha clase
+ Si la superclase es abstracta se heredarán varias subclases diferentes.
p.ej.: si tubieramos una única clase de Mascota y fuera Perro no tendría sentido que se separaran en dos clases diferentes (Mascota – Perro).
+ Cuando el cuadro de clases obtenido tienen funcionalidades diferentes
(respecto a la superclase y entre subclases)
p.ej.: Si todas las especializaciones de Mascota “ladraran”, “hicieranPiruetas”
y se “rascaranLasPulgas”, aunque fueran “Iguanas”, podrían representarse con la
misma clase agregando un atributo “especie”.
o Cuando piensa que tiene una especialización y nadie le dice que no (¡¡¡ buena suerte !!!)
Y un enlace muy bueno de
Enrique
Saludos