Sobes.tech
Junior — Middle

Ako implementovať dedičstvo univerzálneho typu od rozhrania v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V programovacích jazykoch s podporou pre generické typy (napríklad v Jave alebo Kotlin) sa dedičstvo generického typu od rozhrania realizuje uvedením rozhrania s parametrom typu pri deklarácii triedy.

Príklad v Jave:

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

class UserRepository implements Repository<User> {
    @Override
    public void save(User user) {
        // implementácia pre uloženie používateľa
    }

    @Override
    public User findById(int id) {
        // implementácia pre vyhľadanie používateľa
        return new User();
    }
}

Tu trieda UserRepository dedí z rozhrania Repository s konkrétnym typom User.

Ak má byť trieda tiež generická, parameter typu sa odovzdáva ďalej:

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

Týmto spôsobom sa dosahuje dedičstvo generického typu od rozhrania prostredníctvom špecifikácie parametrov typu pri implementácii rozhrania.