Classes abstract

opa :smiley:

estou com o livro da kathy, to bem no começo ainda…me surgiu uma dúvida sobre classes abstract e segundo o livro, eu consegui chegar a seguinte conclusão:

Modificador abstract: são classes feitas com a única razão de serem herdadas. Os métodos abstract terminam com ; ao invés de chaves e se um método for declarado como abstract, a classe DEVE ser declarada como abstract também. Podemos declarar métodos non-abstract dentro de classes abstract e esses métodos poderão ser herdados por classes concretas ( non-abstract ).

Isso está certo? Uma dúvida que me surgiu foi se nos métodos abstract, eu declaro o método completo ou apenas uma declarsação dele.

[]'s

Vamos lá amigo,

Métodos Abstract:
são métodos que não possuem implmentação, por isso devem terminar com ‘;’, pois a classe que herdar este método deve implementa-lo, se uma classe possuir um método abstrato, ela(classe) deve ser declarado como abstract também.
Os métodos possuem apenas as assinaturas e não a implementação dele próprio, isso fica de respoonsabilidade das sub-classes.

Classes Abstract:
são classes que não poderam ser instanciadas, somente classes que herdem dela (sub-classes) poderão ser instanciadas desde que implementem todos os métodos abstratos a super classe (se existir).
Enquanto as sub-classes não implmentarem todos os métodos abstract elas ainda sim são consideradas abstratas e não podem ser instanciadas ainda.

Obs:Classes Abtsratas não necessitam de métodos abstratos, o contrário não é verdadeiro.

certo,

mas eu posso declarar o método inteiro como abstract? Ou eu sempre coloco como

Eu posso colocar o ‘corpo’ desse método dentro da classe abstract?

[quote=davidpadilha]certo,

mas eu posso declarar o método inteiro como abstract? Ou eu sempre coloco como

Eu posso colocar o ‘corpo’ desse método dentro da classe abstract?[/quote]

Perdão não compreendi a sua dúvida.

o Método inteiro será abstract, não pode ser um “pedaço” dele

imagina uma método:

Eu posso declaarar esse método como abstract ou eu preciso declarar

E deixar que a classe filha implemente as regras…?

[quote=davidpadilha]imagina uma método:

Eu posso declaarar esse método como abstract ou eu preciso declarar

E deixar que a classe filha implemente as regras…?[/quote]

a Declaração do método está correta

nah, agora, se vc quer fazer:

public abstract void teste() {
      System.out.println("teste");
} 

isso não pode não.

Conseguiu sanar a dúvida :?:

Perdão eu Juro que num cliquei 2x

:frowning:

agora eu entendi :slight_smile:

vlw neo e sombriks =D