QUESTAO 49 TESTKILLER 2003-2004  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Markinhus86
Debugger
[Avatar]

Membro desde: 08/04/2009 10:11:20
Mensagens: 64
Offline

QUESTAO 49

11. class Person {
12. String name = " No name";
13. public Person (String nm) {name = nm; }
14. }
15.
16. class Employee extends Person {
17. String empID = "0000";
18. public Employee(String id) { empID = id; }
19. }

A resposta indica que tem erro na linha 18... Qual seria esse erro? .. nao consigo identificar..
Obrigado
taaqui
JavaEvangelist
[Avatar]

Membro desde: 05/02/2008 12:25:07
Mensagens: 300
Localização: Rio de Janeiro
Offline

A regra é, o construtor de Employee (sub-classe) vai fazer sempre uma chamada super(); sem argumentos ao construtor da super-classe, como na super classe já tem um construtor com argumentos ele não va criar um automaticamente, compilaria sem erros se tivesse um construtor sem argumentos na super-classe, ou não tivesse aquele construtor com argumentos public Person (String nm){}, ou construtor de sub-classe (Employee) tivesse uma chamada a super com argumentos super(id);.

Compilaria assim:


ou assim:


Ou assim:

This message was edited 5 times. Last update was at 08/04/2009 11:07:06


SCJP-SCWCD-SCBCD
[Email]
Nykolas Lima
Virtual Machine Man
[Avatar]

Membro desde: 07/07/2008 13:10:41
Mensagens: 606
Offline

A primeira linha de um construtor é SEMPRE uma chamada à super().

Caso você não escreva explicitamente, vai ser posto uma padrão ali que é o super();

Como a sua classe estende uma classe que tem um construtor sobrecarregado, ela deve chamar esse construtor com uma chamada explicita a super(String).

Como voce não sobrecarregou o super na primeira linha do construtor, foi inserido o super() padrão.

Como na classe pai não existe nenhum construtor sem argumentos a classe não compila.

Flw

This message was edited 3 times. Last update was at 08/04/2009 12:49:02


Blog: http://nykolaslima.wordpress.com
[WWW]
Markinhus86
Debugger
[Avatar]

Membro desde: 08/04/2009 10:11:20
Mensagens: 64
Offline

ok.. entendi.. Muito Obrigado
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team