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; }
}
Այս կերպ, ընդհանուր տիպի ժառանգությունը ինտերֆեյսից հասնում է տիպի պարամետրերի նշումով՝ ինտերֆեյսի իրականացման ժամանակ։