Sobes.tech
Junior — Middle

Como implementar a herança de um tipo genérico a partir de uma interface numa linguagem de programação?

sobes.tech IA

Resposta da IA

Em linguagens de programação com suporte para tipos genéricos, como Java ou Kotlin, a herança de um tipo genérico de uma interface é feita especificando a interface com um parâmetro de tipo na declaração da classe.

Exemplo em Java:

interface Repository<T> {
    void save(T item);
    T findById(int id);
}

class UserRepository implements Repository<User> {
    @Override
    public void save(User user) {
        // implementação para guardar um usuário
    }

    @Override
    public User findById(int id) {
        // implementação para procurar um usuário
        return new User();
    }
}

Aqui, a classe UserRepository herda da interface Repository com um tipo específico, User.

Se desejar que a classe também seja genérica, o parâmetro de tipo é passado adiante:

class GenericRepository<T> implements Repository<T> {
    @Override
    public void save(T item) { /* ... */ }
    @Override
    public T findById(int id) { /* ... */ return null; }
}

Dessa forma, a herança de um tipo genérico de uma interface é alcançada especificando os parâmetros de tipo na implementação da interface.