questão da prova - pegadinha

Pessoal,
segue + uma questão, achei sacanagem essa ! mas fazer o que, não tava preparado, fiquei em dúvida e errei !!
A pergunta era sobre palavra reservada, e dentre as palavras estava !

implement

marquei que era reservada, mas implment não é, e sim

implements

com “S” no final !!

Uau.
Essa questão sinceramente eu acho fácil.
Mas deve pegar mesmo, hora de prova muita coisa escapa.

Essa era de prestar atençao, posta todas as pegadinhas em um unico post por favor :smiley:

Você deve ficar ligado nesse tipo de questão.

É igual confundir a interface Collection com a classe utilitária Collections.

Eles já fazem esse tipo de coisa de sacanagem.

Normal isso, as vezes na hora da prova bate uma euforia de responder as questões rapidamente, afinal vc está sobre enorme pressão e além disso vc tem de saber realmente oque está acontecendo. Fora da prova vc sabe, vc já programou, vc já cansou de fazer interfaces e sabe que para implementar uma vc utiliza implements não implement, mas por ventura da prova erros como esses podem acontecer é comum, as vezes vc pode confundir tbm métodos abstratos com não abstratos por exemplo:

public void conecta();
public final void conecta();
public abstract void conecta(){}
private abstract void conecta();

As vezes coisas como essa passam batidos e vc não sabe dissernir a questão certa por causa de diversos fatores…
Mas não esquenta não esses pegas são normais.

Em resposta acima todos sabemos que a primeira opção é correta, todos os métodos abstratos são public e abstract, não há necessidade de colocar public nem abstract pois eles já são determinados abstratos em uma interface ou classe abstrata, basta terminar com ;(assim "void conecta(); estaria correto tbm)…
Nunca esses métodos podem ser private ou final pois não haveria sentido, final é o contrário de abstract(pois esse método não pode nem ser reescrito) e private não faria com que esse pudesse ser implementado por outras classes(pois este estaria encapsulado). Além disso todos os métodos abstrados não tem corpo.

Dead, acho que vc se enganou.

Em uma interface todos os métodos são implicitamentes publicos e abstratos.
Ex.: void teste();

Mas em uma classe abstrata você deve declara-lo como abstract.
Ex.:

abstract class Teste{
public abstract void stuff(); //correto
public void stuff(); //erro de compilação

}

Concorda?

Acho que tudo que o Dead disse foi no contexto de interfaces, então não vejo onde ele pode ter se enganado hehe

[]'s

Me refiro a este trecho:

Em resposta acima todos sabemos que a primeira opção é correta, todos os métodos abstratos são public e abstract, não há necessidade de colocar public nem abstract pois eles já são determinados abstratos em uma interface ou classe abstrata, basta terminar com ;(assim "void conecta(); estaria correto tbm)…

Nas classes abstratas os metodos abstratos devem ser declarados abstract.