Logotipo do ConstructiCat
CodeBust.
Explorar a seção ▾

Herança Recusada.

Se uma subclasse usa apenas alguns dos métodos e propriedades herdados de suas classes pai, a hierarquia está desequilibrada. Os métodos desnecessários podem simplesmente ficar sem uso ou serem redefinidos e lançar exceções.

##Sinais e sintomas

Se uma subclasse usa apenas alguns dos métodos e propriedades herdados de suas classes pai, a hierarquia está desequilibrada. Os métodos desnecessários podem simplesmente ficar sem uso ou serem redefinidos e lançar exceções.

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

##Causas do problema

Alguém foi motivado a criar herança entre classes apenas pelo desejo de reutilizar o código de uma superclasse. Mas a superclasse e a subclasse são completamente diferentes.

##Tratamento

##Benefícios

  • Melhora a clareza e a organização do código. Você não vai mais precisar se perguntar por que a classe Dog herda da classe Chair (mesmo que ambas tenham 4 pernas).