Metodos e classes Abstratas

Ola pessoal,

Alguem pode me dizer pra que servem exatamente os metodos e as classes abstratas? Quando eu devo usa-los?

Valeu, t+

Olá Zinho,

sua pergunta é bem teorica, deve-se estudar um pouco mais de teoria de Orientaçao a Objeto… mas vou tentar te esclarecer aqui algo…

Bom, na prática uma classe é abstrata quando ela possui um método abstrato. Vc usa uma classe (ex: Carro) abstrata quando vc terá classes que “Herdarão” (extends) desta classe e necessita que certos métodos sejam impreterivelmente implementados nas classes filhas(ex:Omega, Vectra,…).
Ex:
classe Carro -> metodo abstrato AbrirPorta , ou seja, todos os carros deverao abrir as portas, porem nem todos os carros abrem da mesma forma, alguns abrem pra cima outros abrem pro lado, etc.

por isso esse método AbrirPortas é um método abstrato, pois cada classe filha(Omega, Vectra) implementa de maneiras diferentes.

Entao, um método abstrato é um metodo obrigatório no qual voce(programador) irá definir a açao de cada objeto em particular!

Tudo bem?

Apenas complementando o conceito de classe abstrata, uma classe será considerada abstrata quando tiver pelo menos um método abstrato, como descrito pelo nosso colega jujo. Além disso, vc pode declarar uma classe abstrata, sem necessariamente ter pelo menos um método abstrato. Este conceito é utilizado para que uma classe não seja instânciada, podendo somente ser herdada.

Para ter mais informações sobre este assunto leia o Livro Java Como Programar - Deitel.

:wink:

Pessoal,

Aproveitando o gancho. Como eu identifico quando uma classe possui metodos abstratos? Estou perguntando isso pq eu criei uma classe e ela diz ser adstrata, ou seja, só consigo compilar quando coloco o modificados abstract, mas dai não posso instanciar ela.

Sou iniciante na linguagem e fiquei meio perdido com isso.

[]'s

Fabio

Um método é abstrato quando vc tem algo como:
abstract class Classe()
{
String nome = “Juliano”;
public String Nome()
{
return this.nome;
}
abstract void Metodo();
}

E quando vc tiver um método abstrato vc não vai poder instanciar um objeto dessa classe. somente “herda-la” (extends).

Espero ter esclarecido…
depois vou postar um link aqui, que eu li e achei interessante sobre herança…
Abraço!

Camarada,

Até ai tudo bem, intendi, mas como eu sei ou melhor como identifico se uma classe vai ser abstrata ou não. Como eu disse antes criei uma classe e tenti compilar o java deu erro dizendo que a classe tinha que ser abstrata, mas eu não queria ela assim e naum soube identificar onde eu tava errando.

[]'s

Fabio

Coloca o codigo ai pra vermos o pode estar acontecendo…

Ta ai o link que eu tinha falado sobre Inherit!

http://javaboutique.internet.com/tutorials/Inherit_Compose/

http://javaboutique.internet.com/tutorials/inherit/

interessante!

Valeu brother, agora eu entendi. Ja tinha estudado varias vezes orientacao a objetos , mas soh agora consegui entender os metodos e classes abstratas.

Obrigado.