Fiquei em dúvida se deveria postar esse tópico na parte de Java Básico ou na parte de Certificação. Como é um estudo para certificação acho que pode ajudar outras pessoas, portanto me arrisquei aqui. Se me enganei, por favor mudem
Acabei de ler o primeiro capítulo do livro SCJP for Java 5 Study Guide da Kathy Sierra e respondi os exercícios, mas logo no primeiro exercício eu fiquei em dúvida quanto a resposta encontrado no final.
QUESTÃO
1.
Given the following,
1. interface Base {
2. boolean m1 ();
3. byte m2(short s);
4. }
Which code fragments will compile? (Choose all that apply.)
A. interface Base2 implements Base { }
B. abstract class Class2 extends Base {
public boolean ml() { return true; } }
C. abstract class Class2 implements Base { }
D. abstract class Class2. implements Base {
public boolean m1() { return (true); } }
E. class Class2 implements Base {
boolean m1( ) { return false; }
byte m2(short s) { return 42; } }
RESPOSTA DO LIVRO
C and D are correct, C is correct because an abstract class doesn't have to implement any or all of its interface's methods. D is correct because the method is correctly implemented.
ý
A is incorrect because interfaces don't implement anything, B is incorrect because classes don't extend interfaces. E is incorrect because interface methods are implicitly public, so the methods being implemented must be public. (Objective 1.1)
Aqui fica a dúvida, na alternativa D que o livro da como correta, o nome da classe possui um ponto. Nesse caso, não iria ocorrer um erro na compilação por ser um idenficador inválido?
Abraços