opa
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