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 კლასი მემკვიდრეობას იღებს ინტერფეისიდან, კონკრეტული ტიპით — User.

თუ კლასი უნდა იყოს გენერიკი, ტიპის პარამეტრი გადაეცემა შემდეგნაირად:

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

ამ გზით, გენერიკული ტიპის მემკვიდრეობა ინტერფეისიდან მიიღწევა ტიპის პარამეტრების მითითებით, როდესაც ინტერფეისი იმპლემენტირებულია.