Sobes.tech
Junior

Фарқи байни абстраксия ва полиморфизм чист?

sobes.tech AI

Ҷавоб аз AI

Тавсиф дар бораи абстраксия ба пинҳон кардани тафсилоти иҷроиш ва пешниҳод кардани намоиши соддашудаи объект равона аст. Полиморфизм имкон медиҳад, ки объектҳои класи гуногун ҳамчун объектҳои класи асосӣ ё интерфейсӣ коркард шаванд, бо иҷрои амалҳои махсус барои ҳар объект.

Хусусият Абстраксия Полиморфизм
Маъно Пинҳон кардани тафсилот, пешниҳоди намоиши умумӣ Қобилияти коркарди объектҳои гуногун бо як услуби ягона
Ҳадаф Соддагардонӣ, кам кардани мураккабӣ Флексибиллик, васеъшавӣ, умумигардонии код
Чӣ гуна ба даст меояд Классҳои абстрактӣ, интерфейсҳо Бори зиёд кардани методҳо, иваз кардани методҳо, интерфейсҳо
Масалан Класс Автомобил бе тафсилоти муҳаррик Метод равтан() дар класи гуногун (Легковуш, Грузовик)

Масалан аз абстраксия (истифодаи абстраксия):

interface Шакл {
    // Метод абстрактӣ
    double ҳисоб кардани майдон(); 
}

class Давра implements Шакл {
    private double радиус;

    public Давра(double радиус) {
        this.радиус = радиус;
    }

    @Override
    public double ҳисоб кардани майдон() {
        // Тафсилоти иҷроиш дар паси методи интерфейс пинҳон аст
        return Math.PI * радиус * радиус; 
}
}

Масалан аз полиморфизм:

// Истифодаи полиморфизм
Шакл манШакл = new Давра(5); 
// Звонок ба метод `ҳисоб кардани майдон()` тавассути истинод ба намуди асосӣ (интерфейс Шакл)
// Дар асл, методи `ҳисоб кардани майдон()` аз класи Давра иҷро мешавад
double майдон = манШакл.ҳисоб кардани майдон(); 

System.out.println("Майдон: " + майдон);