Duvida Conceitual sobre classes

1 resposta
M

Boa Noite

Se uma classe filha, tem uma classe filha e assim, sucessivamente, a ultima classe dessa “arvore genealogica”, enxergaria os metodos da 1ªclasse mae(digamos, a raiz dessa “arvore”)??

Se sim, como acessariamos um metodo dessa classe? o comando super supriria essa demanda??

2)Em termos de acoplamento, é um erro estruturar projetos dessa forma?? Imaginem uma empresa que tem mais 100 anos e a cada 15 anos, uma nova geração de administradores assume o controle. Cada geração mantem o projeto(classe) da anterior e faz pequenas modificações(classes filha). A partir de que momento é interessante alterar a propria classe, ao inves de gerar novas classes filhas?

Muito obrigado

1 Resposta

ViniGodoy

A classe filha só tem acesso direto a última redefinição do método. Ou seja, se você tem A mãe de B que é mãe de C. E a classe B redefine um método escrito em A. C só poderá fazer super.metodo() para acessar o método de B. O comando super.super.metodo() não é permitido pois ele violaria o encapsulamento.

Se o método não foi redefinido, mesmo chamando em C, super.metodo() acessaria o método de A.

Sim. Um erro gravíssimo. Não existe relação mais forte entre duas classes do que a herança.
Herança deve sempre denotar uma relação entre tipos. Não deve ser usada para reaproveitar código (isso é uma consequência, não um objetivo).

Num projeto profissional, mesmo um grande, as classes terão poucos filhos. De maneira geral, é bem melhor usar composição do que herança.

Criado 17 de março de 2015
Ultima resposta 17 de mar. de 2015
Respostas 1
Participantes 2