Herança

Oi pessoal. Já estudei Herança em Java e entendi que normalmente a usamos quando temos duas ou mais classes que terão alguns atributos em comum e outros únicos. Mas aqui me deparei com a seguinte situação: Tenho 3 classes chamadas TipoAditivo, TipoContrato, TipoCredor. Cada uma das três classes terá dois atributos, que são os mesmos nas três: tipo e descrição. Minha pergunta é: Devo criar uma quarta classe, digamos TipoObjetos, que conterá os dois atributos e que será a classe pai dessas outras três, mesmo que elas não tenham mais nenhum outro atributo único à cada uma delas?

Então todas as classes são a mesma coisa?

Definitivamente não. O que define o relacionamento de herança entre classes é o seu contrato de operação, ou seja, seus métodos públicos. Você poderia fornecer mais detalhes sobre o seu sistema, pois à primeira vista, me pareceu que são 3 instâncias de uma mesma classe, ao invés de 3 subtipos de um supertipo.

Bom, se as Três não tem nenhum atributo único que diferenci-ás, então não faria sentido de tê-las separadamente.
vc pode criar apenas uma subclasse, neste caso.

Dica: Evite criar muitas subclasses no sistema, a medida que a hierarquia cresce, vc acaba perdendo o controle sobre ela.

[quote=valfrido.silva]Bom, se as Três não tem nenhum atributo único que diferenci-ás, então não faria sentido de tê-las separadamente.
vc pode criar apenas uma subclasse, neste caso. [/quote]

Eu deixaria as três classes separadas e não criaria nenhuma classe pai.

Razões:

  1. As três classes parecem descrever conceitos diferentes. Idealmente, para cada conceito, você deveria ter uma classe;
  2. As três classes não parecem ser diretamente relacionadas. Ou seja, não parecem derivar da mesma hierarquia.

Herança não é uma ferramenta para “evitar digitar código”. Esse é um efeito colateral, não um propósito. Jamais crie uma hierarquia pura e simplesmente para eliminar código.

Certo pessoal, entendi o que vocês colocaram. Depois fiquei pensando e realmente acho que vou fazer as três classes mesmo. Vlw, obrigado a todos pela atenção!!