mas pelo que vi, nem compila, pq a “variavel” que foi declarada na Interface sempre será pública, estática e final , portanto naum pode-se atribuir um valor a ela, como é feito na classe …
tô certo ? ou tô errado ?
M
matheusPJ
graaande FabioAzul… ehheheeh, é isso ai cara… ah, o enunciado é sempre o mesmo, ai nem coloquei… ou seja… saber oq se passa no código
P
phstcPJ
Uma dúvida, nas interfaces eu so deve sobrescrever os metodos? No caso desses atributos x e CONST eu não deveria ter que sobescrever na classe que implementa esta interface? Qualquer atributo em uma inteface é constante mesmo não usando final???
Todas os atributos, metodos e classes que usam o modifier default são públicos?
exemplo:
class x{
int y;
void x();
}
Nesse exemplo todos os itens são públicos?
M
matheusPJ
1. sim tu só implementa os métodos!
2. Não precisa declarar as variaveis de novo, elas são herdadas no momento em q tu implementa a interface..
3. qualquer atributo na interface é implicitamente public static final, ou seja, essas linhas fazem a mesma coisa, declaram public static final int x:
int x;
final int x;
static int x;
static final int x;
public int x;
public final int x;
public static int x;
public static final int x;
4. Não! o modificador default é diferente do public, ele só só da visibilidade para as classes q estão no mesmo pacote, sem exceções, exemplo de código válido:
public class A {
int x;
}
class B {
B() {
A a = new A();
a.x = 5;
}
}
Todo atributo dentro de uma interface é uma constante, caso não seja inicializado na interface (durante a contrução do atributo), ele tera o valor default do tipo (int = 0, Integer = null), ou também pode ser inicializado no construtor da classe que implementa a interface, assim como constantes dentro de um classe?
interface XYA{
public static final x = 5;
}
Modifiers default são como protecteds?
M
matheusPJ
isso ai… bem, sobre protected e acesso padrão, eles tem diferenças sim… o acesso protected é quase igual ao acesso padrão, a diferença é q com protected, uma classe q extends outra classe com o atributo protected, o herda… com acesso padrão, o unico código q tem acesso ao atributo, é aquele q pertence ao mesmo package…
R
RobsonPJ
Apenas complementando…
phst escreveu
Variáveis de instância finais não recebem valor default e devem ser inicializadas até a conclusão do construtor da classe. Como interfaces não têm construtor, suas variáveis de instância devem ser inicializadas no momento da declaração ou o compilador irá reclamar