bom vamos la… tentar explicar de uma forma mais simples para vc… o objetivo de metodos abstratos é você deixar para a subclasse escolher como vai implementar esse método. No mundo real vc tem: Um Carro que tem cor, placa, marca certo? Entao qualquer carro tem isso… confere? Desde o fusca a ferrari… entao analise o codigo abaixo:
abstract class Carro{
abstract void cor();
abstract void placa();
}
na linha acima é uma classe carro abstrata, (é importante vc saber o conceito do que algo abstrato www.google.com.br) isso pq definir ela com o modificador abstract, mais a funcionalidade disso é dizer assim: " olha a class concreta que extends a mim deve implementar todos os meus metodos" mais pq? Por que tudo que é concreto tem q ter um valor.(vamos falar assim para ficar mais facil).
//class concreta
class Ferrari extends Carro{
void cor(){
System.out.println("vermelho");}
void placa(){
System.out.println("JHKL1025");
}
O que aconteceu agora? Bom Ferrari É-UM carro que tem a cor é vermelho e a placa é JHKL1025.
Ai você deve estar se perguntando sim, mais para que vou usar isso no mundo da programacao… imagine comigo agora… o seguinte, você desenvolve um sistema para uma industria de automoveis… ai vamos dizer que antes de o carro ir para linha de produção… o cara deve chegar lá no sistema e configurar os dados do carro… tipo. A ford, ela possui vamos modelos de carros e suas respectivas cores… agora vem o desenvolvimento… quando vc for projetar o sistema vai querer criar cada class para cada tipo de carro que a fabrica tem? Não é melhor vc fazer lá uma classe abstracta e e fica a criterio de quem for projetar o carro definir os dados do carro… lembrando que todo carro sempre tem as mesmas caracteristicas. (nome, cor, numero de portas etc).
Entao seguindo ainda nosso exemplo vamos dizer que outro departamento da fabrica que produz carro populares vai mandar o setor de produção fazer outro carro.
class Celta extends Carro{
void cor() {
System.out.println("Rosa");}
void placa(){
System.out.println("HJU677");}
percebeu a essencia de se fazer uma classe abstrata? entao é ± isso ai… tentei explicar de uma forma bem simples… ja que vc está começando espero que vc tenha pegado ai… qualquer coisa… so gritar ai …
flw!! abraço!