Sobes.tech
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();
        }
    }
}