Sobes.tech
Junior

Abstraktsiya va ko'p shakllilik o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Abstraksiya obyektning amalga oshirilish tafsilotlarini yashirish va soddalashtirilgan tasvirini taqdim etishga qaratilgan. Polimorfizm turli sinflardan bo'lgan obyektlarni asosiy sinf yoki interfeys sifatida ishlashiga imkon beradi va har bir obyekt uchun maxsus harakatlarni bajaradi.

Xususiyat Abstraksiya Polimorfizm
Asosiy ma'no Tafsilotlarni yashirish, umumiy ko'rinish berish Turli tiplardagi obyektlarni bir xil tarzda ishlash imkoniyati
Ma'no Soddalashtirish, murakkablikni kamaytirish Moslashuvchanlik, kengaytiriluvchanlik, kodning universal bo'lishi
Qanday amalga oshiriladi Abstrakt sinflar, interfeyslar Metodlarni ortiqcha yuklash, metodlarni qayta yozish, interfeyslar
Misol Avtomobil sinfi motor tafsilotlari bilan bo'lmagan harakat() metodi turli sinflarda (Sedan, Yuk mashina)

Abstraktsiya misoli (abstraktsiyadan foydalanish):

interface Shakl {
    // Abstrakt metod
    double maydonHesablash(); 
}

class Doira implements Shakl {
    private double radius;

    public Doira(double radius) {
        this.radius = radius;
    }

    @Override
    public double maydonHesablash() {
        // Amalga oshirish tafsilotlari interfeys metodining orqasida yashirilgan
        return Math.PI * radius * radius; 
}
}

Polimorfizm misoli:

// Polimorfizmdan foydalanish
Shakl meningShaklim = new Doira(5); 
// `maydonHesablash()` metodini asosiy turdagi (interfeys Shakl) orqali chaqirish
// Aslida, Doira sinfidagi `maydonHesablash()` metodi bajariladi
double maydon = meningShaklim.maydonHesablash(); 

System.out.println("Maydon: " + maydon);