Interface

2 respostas
R
a professora mandou um arquivo tipo interface
public interface AlgoritmosEmGrafos {

    /**
     * Carrega grafo do arquivo texto. O formato será definido do site da disciplina
     * @param path
     * @return um objeto grafo com as informações representadas no arquivo.
     * @throws java.lang.Exception Caminho inválido ou árquivo fora do padrão.
     */
    public Grafo carregarGrafo(String path, TipoDeRepresentacao t) throws Exception;
    
    /**
     * Verifica se existe ciclo no grafo.
     * @param g Grafo.
     * @return True, se existe ciclo, False, em caso contrário.
     */
    public boolean existeCiclo(Grafo g);
    
    /**
     * Retorna (em ordem) as arestas que compoem o caminho mais curto 
     * entre um par de vértices.
     * @param g
     * @param origem
     * @param destino
     * @return As arestas (em ordem) do caminho mais curto.
     */
    public ArrayList<Aresta> menorCaminho( Grafo g, Vertice origem, Vertice destino );
    
    /**
     * Arestas de arvore.
     * @param g
     * @return As arestas de arvore do grafo g.
     */
    public Collection<Aresta> arestasDeArvore(Grafo g);
    
    /**
     * Arestas de retorno.
     * @param g
     * @return As arestas de retorno do grafo g.
     */
    public Collection<Aresta> arestasDeRetorno(Grafo g);
    
    /**
     * Arestas de avanço.
     * @param g
     * @return As arestas de avanço do grafo g.
     */
    public Collection<Aresta> arestasDeAvanco(Grafo g);
    
    /**
     * Arestas de cruzamento.
     * @param g
     * @return As arestas de cruzamento do grafo g.
     */
    public Collection<Aresta> arestasDeCruzamento(Grafo g);
    
}

seria implementaçoes de grafos...so que vc pode representar grafo por Matriz, Vetor de Lista Encadeadas e um outro tipo...ai tenho duvidas se preciso criar uma classe que implementa AlgoritmosEmGrafos para cada tipo de representaçao...

a duvida surgiu pois esse parametro TipoDeRepresentacao eh enum:
public enum TipoDeRepresentacao {
    MATRIZ_DE_ADJACENCIA  , MATRIZ_DE_INCIDENCIA , LISTA_DE_ADJACENCIA; 
}

teria que implementar uma classe pra todos os tipos de representaçao ou 1 classe para cada tipo de representaçao?

grato!

2 Respostas

jscamara

Fala amigo,

Você pode criar um classe e implementar a interface,
Pelo fato de ser interface, ela vai pedir pra você implementar todos os métodos.

Ou seja uma única classe implementa todos os métodos!

O que você pode fazer tbm é:

class A implements InterfaceGrafos

a classe A vai implementar todos os métodos da interface

e vc cria

class B extends A

a classe B vai herdar todos os métodos da A, porém vc pode
sobrescreve somente os método que você for utilizar!

Abraços

el_loko

rsom91:
a professora mandou um arquivo tipo interface

public interface AlgoritmosEmGrafos {
..........


Boa tarde,

Não sei se entendi a sua dúvida, mas pensa assim:

No caso de você implementar essa interface por uma classe, necessariamente todos os métodos precisam ser implementados.
Já se você usar uma classe abstrata e usar o implements AlgoritmosEmGrafos, poderá implementar somente os métodos que quiser,
deixando a implementação obrigatória somente para a próxima classe não abstrata que herdar dela.

Ex:

public abstract class A implements AlgoritmosEmGrafos{
        //não é obrigatório que a classe A implemente todos os métodos  descritos na interface AlgoritmosEmGrafos
    }
Criado 10 de maio de 2011
Ultima resposta 10 de mai. de 2011
Respostas 2
Participantes 3