Junior
Dasturlashda polimorfizm qanday muammoni hal qiladi?
sobes.tech AI
AIdan javob
Polimorfizm ob'ektlarning turli sinflariga tegishli bo'lsa ham, ular haqiqiy turiga qarab, bir xil xabar (metod chaqiruvi)ga turli javob berishlariga imkon beradi. Bu kodning moslashuvchanligi va kengaytirilishini oshiradi.
Asosiy afzalliklar:
- Ko'p qirrali: Umumiy interfeys yoki asosiy sinf orqali turli turdagi ob'ektlar to'plami bilan ishlash mumkin.
- Kengaytirilishi: Mavjud kodni o'zgartirmasdan, shuningdek, shunday interfeysni amalga oshiradigan yangi sinflar qo'shish oson.
- Kodning soddalashtirilishi: Turli ob'ekt turlarini boshqarish uchun shart operatorlari (
if/else if) soni kamayadi.
Misol:
// Asosiy sinf
class Animal {
public void makeSound() {
System.out.println("Ovoz chiqaradi");
}
}
// Voris sinf
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Hov!");
}
}
// Voris sinf
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miy!");
}
}
public class Main {
public static void main(String[] args) {
// Turli turlardagi ob'ektlar massiv, lekin umumiy asosiy sinfga murojaat
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
// Bir xil metod chaqiruvi, javob haqiqiy ob'ekt turiga bog'liq
for (Animal animal : animals) {
animal.makeSound();
}
}
}