Uma Interface não pode conter variáveis de instância ou de classe (static). Isso é verdade?

Fiz uma prova um tempinho atrás onde esta afirmação estava no gabarito como correta…mas testei no netBeans agora e não apresentou erro na declaração

public interface ClasseParente {

static int numero = 34;
void metodo1();

}

Alguém pode me explicar melhor sobre isso…abraço!

1 curtida

É possível sim.

A função da interface é “apenas” especificar os atributos e métodos que as classes implementadoras terão que implementar ao utilizar determinada interface.

1 curtida

Sim, está correto, pois trata-se de um atributo estático e não de um método. O modificar static é inválido para métodos em uma interface.

Abraços.

[quote=capivetta]Fiz uma prova um tempinho atrás onde esta afirmação estava no gabarito como correta…mas testei no netBeans agora e não apresentou erro na declaração

public interface ClasseParente {

static int numero = 34;
void metodo1();

}

Alguém pode me explicar melhor sobre isso…abraço!

[/quote]

Toda variavel de interface são impicitamente PUBLIC FINAL STATIC, mesmo que vc nao coloque um deles
Todo método de interface são implicitamente PUBLIC ABSTRACT, mesmo que vc nao coloque um deles.

Mas pq será que não da erro no NetBeans então…estranho não???

…e obrigado a todos pela informação!

[quote=capivetta]Mas pq será que não da erro no NetBeans então…estranho não???

…e obrigado a todos pela informação![/quote]

Pq iria da erro, se esta correto?

[quote=evertonsilvagomesjava][quote=capivetta]Mas pq será que não da erro no NetBeans então…estranho não???

…e obrigado a todos pela informação![/quote]

Pq iria da erro, se esta correto?[/quote]

Vou tentar explicar de um outro jeito!
ESSA ERA UMA DAS ALTERNATIVAS DA PROVA E NELA ESTÁ A MINHA DÚVIDA!

“uma interface não pode conter métodos concretos, mas permite a declaração de constantes e
atributos static”

No gabarito ela está errada…mas eu testei no netbeans e realmente uma interface não pode conter métodos concretos , que é bem obvio, e essa parte “mas permite a declaração de constantes e atributos static” eu não tinha certeza e testei no netbeans e não deu erro!

MAS ESTÁ ERRADA NO GABARITO! QUAL ESTÁ CERTO ENTÃO, O NETBEANS OU A PROVA!

LOGICO QUE É A PROVA, poem isso na sua cabeça:

Toda variavel de interface são impicitamente PUBLIC FINAL STATIC, mesmo que vc nao coloque um deles
Todo método de interface são implicitamente PUBLIC ABSTRACT, mesmo que vc nao coloque um deles.

[quote=evertonsilvagomesjava]LOGICO QUE É A PROVA, poem isso na sua cabeça:

Toda variavel de interface são impicitamente PUBLIC FINAL STATIC, mesmo que vc nao coloque um deles
Todo método de interface são implicitamente PUBLIC ABSTRACT, mesmo que vc nao coloque um deles.[/quote]

Hahahaha…tinha entidido isso já…mas agora flagrei a pegadinha da questãonela estava escrita “MAS permite a declaração de constantes e
atributos static”
e na verdade como vc falou ,todas são PUBLIC FINAL STATIC!

Acho que é isso então…meu raciocínio ta certo?
Abraço!!!

Pois é, mas se vc declara assim:

final int a;

Implicitamente o compilador coloca pra vc o static public.

A questão fala que vc pode usar constantes e staticos, pra mim á questao deveria estar como correta. Isso ai é questão de interpretação, pode vir alguem aqui e falar que não.

Mas á regra pra atributos de Interfaces é uma só.

[quote=evertonsilvagomesjava]Pois é, mas se vc declara assim:

final int a;

Implicitamente o compilador coloca pra vc o static public.

A questão fala que vc pode usar constantes e staticos, pra mim á questao deveria estar como correta. Isso ai é questão de interpretação, pode vir alguem aqui e falar que não.

Mas á regra pra atributos de Interfaces é uma só.[/quote]

Então Everton, como vc disse acima “LOGICO QUE É A PROVA” que estava correta(ou seja, alternativa errada), não é bem assim, agora tu falou que pra vc está certa, CONCORDANDO COM O NETBEANS que erra a minha dúvida inicial…só sei que se eu tivesse acertado essa questão eu tinha passado em um concurso…mas bola pra frente!

cara, quando falei LOGICO QUE É A PROVA, quis dizer que logico que ela esta ERRADA. A questão deveria ser CORRETA, estou o tempo todo querendo dizer isso.

hahahaha…que comédia isso! mas vlw pela ajuda…uma coisa que a gente tem que concordar que essa questão podia ser melhor formulada e seguindo o nosso raciocínio teria passado nesta merda de concurso!