Ir ao conteúdo
  • Cadastre-se

Implementação de Herança


Visitante
Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Olá, tenho uma superclasse animal com n atributos e uma subclasse peixe com os mesmos atributos, mas valores específicos. Daí não sei aonde eu declaro esses valores.... 

 

Os atributos estão na super como private. Devo acessar na sub por um setter ou trocar pra protected? Se eu criar um setter terei que chamá-lo sempre, não queria isso. Então como eu faço pra ficar "default" na sub??

    Peixe(){}    public Peixe(String nome, String cor, String ambiente, float velocidade,                                             int comprimento, int patas) {            super(nome, cor = "cinza", ambiente = "mar", velocidade, comprimento, patas);          //ou this.cor = "cinza";??????   }   private final boolean barbatanas = true;   private final boolean cauda = true;
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

Olá.

 

Creio que usar private ou não é uma questão de padrão de projeto. Se você precisa encapsular, vai usar private mesmo e acessar via getter e setter... senão, usa da forma que ficou acordado.

 

Eu não lembro como seria, mas acho que pode ser algo como super.getNomeDoAtributo() ou super().getNomeDoAtributo(). Não sei dizer se funciona da um getNomeDoAtributo() direto na subclasse.. Testa ai...

 

Outra coisa, usar um constrututor ou não, também depende da sua proposta... você pode criar diretamente pelo super mesmo, passando os parâmetros, ou pelos setters... como você já tem todos os dados, seria mais sensato pelo construtor...

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

 

Eu não lembro como seria, mas acho que pode ser algo como super.getNomeDoAtributo() ou super().getNomeDoAtributo(). Não sei dizer se funciona da um getNomeDoAtributo() direto na subclasse.. Testa ai...

 

Outra coisa, usar um constrututor ou não, também depende da sua proposta... você pode criar diretamente pelo super mesmo, passando os parâmetros, ou pelos setters... como você já tem todos os dados, seria mais sensato pelo construtor...

 

Sim, você pode usar diretamente getNomeDoAtributo() na classe filha que funciona normalmente.

Porém, com relação aos contrutores, dependendo da quantidade de parâmetros, não é uma boa prática ... Caso você consiga, recomendo ler o Livro "Effective Java" ("Java Efetivo" na versão traduzida), que vai ajudar e muito a melhorar a forma de programar ... (to recomendando porque eu o li esses dias e mudou e muito minha forma de analisar e resolver os algoritmos)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...