Construtores

3 respostas
tinorberto

Estou estudando para a certificação e me deparei com a seguinte questão :

Qual desses construtores são validos

a)   public Main(String s){};
b)   public static Main(){};
c)     public final  Main(){};
d)   public void Main(){};

Então veio a duvida a letra e valida , e a letra b , c são invalidas . Mas a letra D no livro esta como errada , so que no NetBeans IDE 6.5 Java 1.6.0_11 não da erro de compilação . então de acordo com a linguagem java ou pode sero compilador? …flw

3 Respostas

M

A letra D é um método =).

Lembre-se construtores não tem retorno! Entao

“public void Main(){}” - método

Está errado! Errado no caso significa que não é um construtor… Mas é um método e compila!

Jiraiya

Não da erro de compilação, pois a IDE entende como sendo um método com retorno void, ou seja sendo void não precisa de retorno, consequentemente nao vai reclamar de não haver implementação também.
letra a esta correta , pois a letra “d” tem retorno(construtores nao possuem retorno), a letra “b” esta incorreta porque static faria com que o construtor pertencesse a classe nao a instancia e a letra “c” esta incorreta por causa do final fazendo com que ele seja imutavel e impossivel de ser herdado

M

Na verdade o construtor não é herdado…
Logo não há motivo para declarar um construtor “final” uma vez que ele nunca será sobrescrito.
Construtores não podem ser declarados “static” como ja mencionado pelo Jiraiya, “final” e “abstract”.
Não pode ser abstrato porque nao pode ser herdado (e implementado).

Criado 28 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 3
Participantes 3