Bom dia,
Não consigo perceber para que servem as class abstract já que não podem ser instanciadas, é que dentro da classe podem ter metodos abstract.
Alguem me podia dar umas dicas?!
Bom dia,
Não consigo perceber para que servem as class abstract já que não podem ser instanciadas, é que dentro da classe podem ter metodos abstract.
Alguem me podia dar umas dicas?!
Uma classe abstrata mostra um comportamento padrão. É quando vc quer que em uma projeto, seus programadores respeitem uma determinada estrutura de trabalho, sobrescrevendo por exemplo somente um metodo, e mantendo algumas implementação abstraidas dos outros desenvolvedores.
Pode parecer inutilidade. Eu também achava isso, mas é muito importante em um projeto para proporcionar baixo acoplamento.
os metodos marcados como abstract, devem ser implementados na classe filha, a menos que ela seja uma classe abstrata tbm.
Somente a ultima classe concreta tem a obrigação de implementar os metodos abstratos.
[]'s
Aconselho a dar uma estudada em Design Pattern e ai você vai entender melhor a importância de classes abstratas, interfaces, desacoplamento, etc…
acrecentando um pouco mais ao que os colegas falaram…
pode-se dizer que classes abstratam existem para evitar retrabalho, um exemplo que existe na API do java se encontra na Java Colletion Framework
existe uma interface que todos conhecem e todos usam que se chama java.util.List, interfaces são contratos, é o modo de operar que uma classe aceita quando a implementa, existem varios tipos de List em java, ArrayList, Vector, LinkedList entre outras…
A interface List, é um contrato, e nela so o que as classes que a implementam deve possuir, os 3 tipos de list que eu citei acima, implementam a interface List, para evitar retrabalho, e reecrever trechos de códigos que são similares para as 3 classes, se criou um classe intermediaria, com métodos comuns a esses 3 tipos de list esta classe se chama AbstractList
sendo assim, AbstractList serve principalmente como uma base, com métodos comuns para implementar uma List.
…
A classe abstata quase sempre tem essa função, no lugar de vc reecrever o mesmo método em varios Objetos, vc concentra o trabalho comum em uma classe abstrata