Interface Runnable

7 respostas
O

Pessoal, pode parecer bobagem minha, mas…pergunto:
Se uma Interface é tipo um molde / contrato para demais classes q a implemetam, por que existem o método abstrato:
[color=“blue”]public abstract void run();[/color]
na interface Runnable ? sabendo q todo metodo em uma interface é:
public + final + static ?

nao poderia ser : void run(); ???

Grato

7 Respostas

caiofilipini

“ozorro”:
sabendo q todo metodo em uma interface é:
public + final + static ?

Métodos em uma interface não são final… Constantes é que são.

Poderia sim… :wink:

O

perdão: em uma interface variaveis de instancia são:

public + static + final

e para métodos assinados são:

public + abstract

o q causa é: pra q colocar:

public abstract void run(); {

}não poderia ser + claro:

[color=red] void run(); {

}[/color]

aí,aí!!

caiofilipini
<blockquote><div class="quote-author">“ozorro”:</div>o q causa é: pra q colocar:

public abstract void run(); {

}não poderia ser + claro:

[color=“red”] void run(); {

}[/color]</blockquote>

Clareza de código :!:
É parecido com usar a palavra-chave this onde não precisa:

public String getNome&#40;&#41; &#123; return this.nome; &#125;

[]'s

cv1

Expandindo um pouco: todo método numa interface é publico e abstrato (que é o contrário de final) :smiley:

vamorim

O que é clareza? Ausência de código desnecessário ou presença explícita de código default?
Bom, pense num principiante. Quanto menos informação ele precisa para entender o código, mais claro ele o é. É por isso que defendo a forma explícita. :wink:

dukejeffrie

Isso é coisa de quem usa Eclipse.

colocar abstract num médoto de interface é a maior redundância que eu já vi.

Eu nem sabia que todos os métodos eram public!!! É verdade mesmo isso?? E se a interface não for pública??

E uma pentelhice (eu reconheço): variável de instância não pode ser static.

[]s!!

O

dukejeffrie e verdade sim, em uma Interface e designada da seguinte forma:

int intCodFunc = 1;
quando vc for implementar na sua classe ela sera vista como

public static final intCodFunc =1;

em ex:

public interface InterfaceFuncionario{

int intCodEmpresa = 1;

}

public class Empresa
implements InterfaceFuncionario{

public static void main(String[] args) {
   System.out.println("CÓDIGO EMPRESA..:" + intCodEmpresa );
   }
}

entendeu? pois éqdo falei da classe Runnable

tem: public abstract void run();

pra q! sei , se um metodo ja visto como:

public abstract

simplesmente posso colocar
void run();
e morreu Maria Prea

Criado 12 de fevereiro de 2004
Ultima resposta 13 de fev. de 2004
Respostas 7
Participantes 5