Sobes.tech
Junior — Middle

Ինչպե՞ս իրականացնել ընդհանուր տիպի ժառանգություն ինտերֆեյսից ծրագրավորման լեզվում։

sobes.tech AI

Պատասխան AI-ից

Ծրագրավորման լեզուներում, որոնք աջակցում են ընդհանուր տիպերի (generics), օրինակ՝ Java կամ Kotlin, ընդհանուր տիպի ժառանգությունը ինտերֆեյսից իրականացվում է դասի հայտարարության ժամանակ տիպի պարամետրի հետ ինտերֆեյսի նշումով:

Java-ում օրինակ:

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

class UserRepository implements Repository<User> {
    @Override
    public void save(User user) {
        // օգտագործողի պահպանման իրականացում
    }

    @Override
    public User findById(int id) {
        // օգտագործողի որոնման իրականացում
        return new User();
    }
}

Այստեղ UserRepository դասը ժառանգում է Repository ինտերֆեյսից կոնկրետ տիպով՝ User:

Եթե նաև դասը պետք է լինի ընդհանուր, տիպի պարամետրը փոխանցվում է հետագա:

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

Այս կերպ, ընդհանուր տիպի ժառանգությունը ինտերֆեյսից հասնում է տիպի պարամետրերի նշումով՝ ինտերֆեյսի իրականացման ժամանակ։