Uma interface pode declarar uma classe interna?

R.: Sim, toda classe interna declarada em uma interface será por padrão estática. Haja visto a classe Entry declarada dentro da interface Map do pacote ‘java.util’ 

 

import java.util.Map;

import java.util.LinkedHashMap;

import java.util.Map.Entry;
// static inner class

 
 

public class Teste {

public static void main(String[] args){

Map<String, String> map = new LinkedHashMap<String,String>(10,10,true);

map.put(“1”, “jose”);

map.put(“2”, “lucia”);

map.put(“3”, “pedro”);

map.put(“4”, “flavia”);

 
 

// acessando os itens para mudar a ordem …

map.get(“4”);

map.get(“3”);

map.get(“1”);

 
 

// veja que a interface Map define uma sub interface chamada Entry

for(Map.Entry m : map.entrySet())

System.out.printf(“%1$s – %2$s\n”,m.getKey(), m.getValue());

}                

}

Output:

2 – lucia

4 – flavia

3 – pedro

1 – jose

 

 

 

Olhe exemplo desenvolvido por mim:

 
 

public class Teste {

public static void main(String[] args){

MyCalc mc = new MyCalc();

Calc.Result result = mc.doCalc(51);

System.out.println(result);

}                

}

Output:

51

 
 

interface Calc{

// classe declarada dentro de uma interface é estática por padrão.

class Result {

private int i;

public Result(int i){

this.i = i;

}

public String toString(){

return new Integer(i).toString();

}

}

public abstract Result doCalc(int i);

}

 
 

class MyCalc implements Calc {

public Result doCalc(int i){

return new Result(i);

}

}

Anúncios
Esta entrada foi publicada em Java com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s