Sobes.tech
Junior — Middle

Kako implementirati nasledjivanje opšteg tipa od interfejsa u programskom jeziku?

sobes.tech АИ

Одговор од АИ

U programskim jezicima koji podržavaju generičke tipove, kao što su Java ili Kotlin, nasleđivanje generičkog tipa od interfejsa se ostvaruje navodeći interfejs sa parametrima tipa prilikom deklaracije klase.

Primer u Javi:

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

class UserRepository implements Repository<User> {
    @Override
    public void save(User user) {
        // implementacija za čuvanje korisnika
    }

    @Override
    public User findById(int id) {
        // implementacija za pronalaženje korisnika
        return new User();
    }
}

Ovde, klasa UserRepository nasleđuje interfejs Repository sa konkretnim tipom, User.

Ako želi da i klasa bude generička, parametar tipa se prosleđuje dalje:

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

Na ovaj način, nasleđivanje generičkog tipa od interfejsa se postiže navodeći parametre tipa prilikom implementacije interfejsa.