Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Herencia rechazada.

Si una subclase usa solo algunos de los métodos y propiedades heredados de sus padres, la jerarquía está desequilibrada. Los métodos innecesarios pueden simplemente quedar sin usar o redefinirse y lanzar excepciones.

##Signos y síntomas

Si una subclase usa solo algunos de los métodos y propiedades heredados de sus padres, la jerarquía está desequilibrada. Los métodos innecesarios pueden simplemente quedar sin usar o redefinirse y lanzar excepciones.

class Square extends Rectangle {
  void setWidth(int w) { throw new UnsupportedOperationException(); }
  void setHeight(int h) { throw new UnsupportedOperationException(); }
}

##Causas del problema

Alguien se sintió motivado a crear una herencia entre clases únicamente por el deseo de reutilizar el código de una superclase. Pero la superclase y la subclase son completamente diferentes.

##Tratamiento

##Beneficios

  • Mejora la claridad y la organización del código. Ya no tendrás que preguntarte por qué la clase Dog hereda de la clase Chair (aunque ambas tengan 4 patas).