é correto afirmar que toda classe pai temos que atribuí-la como abstract

7 respostas
MartinsAndreDablio

estou com essa duvida, é correto?

Classe Pai

public abistract class Animal{
//para declarar métodos e atributos obrigatórios para as classes filhas...
}

classes filhas

public class Cachorro extends Animal{
}
public class Gato extends Animal{
}

fovor se puder citar um exemplo…

7 Respostas

Hebert_Coelho

No seu caso pode ser abstract.

Mas não é correto afirmar que toda classe pai tem que ser abstract.

MartinsAndreDablio

Certo, mas seria de bom tom definirmos métodos obrigatórios dessa forma faríamos com o que o usuário de nossa classe(programador) fosse obrigado a implementar os métodos nas classes filhas…

certo?

novato25

por que seria de bom tom definir métodos obrigatórios para serem implementados nas classes filhas?

ViniGodoy

Não. Você pode ter uma classe pai completa, sem qualquer necessidade de que a filha implemente algum método abstrato obrigatoriamente.

MartinsAndreDablio

o que eu quis dizer é que poderia obrigar o programador a sobrescrever um método que eu criei na minha classe pai por exemplo.
temos a classe pai

public abstract class CFuncionário{
    void abstract vSalario();
}

depois as classes filhas…

public class CGerente extends CFuncionário{
    void vSalario(){
    //teria a obrigação de implementar isso... se não daria um erro...
    }
}

outra classe que herda da classe funcionário…

public class CCopeira extends CFuncionário{
    void vSalario(){
    //teria a obrigação de implementar isso... se não daria um erro...
    }
}

é errado isso?

ViniGodoy
MartinsAndreDablio:
o que eu quis dizer é que poderia obrigar o programador a sobrescrever um método que eu criei na minha classe pai por exemplo.

Não é errado. Você pode definir um método para ser implementado no filho, por exemplo:

public abstract class Animal {
   public abstract void barulho();
}

//Aqui seria obrigatório implementar o método barulho
public class Cachorro extends Animal {
}

Mas isso não é nem obrigatório (você pode ter uma classe pai sem nenhum método abstrato), e não necessariamente é uma boa prática (depende muito do caso).
Também não é errado, tudo vai depender do seu projeto.

MartinsAndreDablio

Valeu, obrigado.

Criado 31 de março de 2013
Ultima resposta 1 de abr. de 2013
Respostas 7
Participantes 4