Sobes.tech
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; }
}

Ин тариқ, мероси намудҳои умумӣ аз интерфейс тавассути нишон додани параметрҳои намуд дар вақти иҷрои интерфейс ба даст меояд.