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);