1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Método estático da interface lendo atributos estáticos das classes

Boa tarde,

No caso hipotético abaixo, é possível implementar o método getTipo() na interface, de modo que retorne o valor de um atributo estático da classe que a implementa?

public interface Pokemon {
  private static String tipo = ""; // não sei se é necessário

  public static String getTipo(){
    // código mágico aqui (possível no Java 8)
  }
}

public class Pikachu implements Pokemon {
  private static String tipo = "eletrico";
}

public class Squirtle implements Pokemon {
  private static String tipo = "agua";
}

public static void main(String[] args) {
   System.out.println(Pikachu.getTipo()); // deve imprimir "eletrico"
   System.out.println(Squirtle.getTipo()); // deve imprimir "agua"
}

Estou considerando que o atributo "tipo" é um atributo da classe, e não do objeto, já que todos os pikachus são elétricos.

O objetivo é não ter que implementar o método getTipo() em cada uma das classes que implementarem a interface.

Obs: As classes nesse tema foram só pra chamar a atenção mesmo.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

4 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags interface herança ou faça a sua própria pergunta.