Junior — Middle
Чӣ гуна татбиқ кардани меросии навъи умумӣ аз интерфейс дар забони барномасозӣ?
sobes.tech AI
Ҷавоб аз AI
Дар программаҳои забонҳои, ки дастгирии намудҳои умумиро доранд (масалан, 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; }
}
Ин тариқ, мероси намудҳои умумӣ аз интерфейс тавассути нишон додани параметрҳои намуд дар вақти иҷрои интерфейс ба даст меояд.