Sobes.tech
Junior

Meros va polimorfizm o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Merosxo‘rlik — bu sinf (voris, voris sinf) boshqa sinf (ota, superklass) maydonlari va metodlarini meros qilib olish imkonini beradigan mexanizm. Bu kodni qayta ishlatishni rag‘batlantiradi.

Polimorfizm — bu bir xil interfeysni turli asosiy shakllarni ifodalash uchun ishlatish imkoniyatidir. Java kontekstida, bu referens turlaridagi o‘zgaruvchi o‘zining o‘ziga xos turidagi obyekti yoki uning har qanday subtipidagi obyekti bilan murojaat qilishi mumkinligini anglatadi. Bu kompilatsiya vaqti polimorfizmi (metodlarni ortiqcha yuklash) va bajarilish vaqti polimorfizmi (metodlarni qayta yozish) sifatida ajratiladi.

Asosiy farq:

  • Merosxo‘rlik sinflar o‘rtasidagi munosabatlarni (ota- farzand) belgilaydi va kodni qayta ishlatishga imkon beradi.
  • Polimorfizm umumiy interfeys orqali turli ob’ektlarga murojaat qilish va haqiqiy ob’ekt turiga qarab mos metodni bajarishni ta’minlaydi.

Bajarilish vaqti polimorfizm misoli:

class Animal {
    public void sound() {
        System.out.println("Hayvon tovush chiqaradi");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Hav-hav");
    }
}

class Cat extends Animal {
    @Override
    public void sound() {
        System.out.println("Miy-miy");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Polimorfizm: Animal turidagi o‘zgaruvchi Dog obyekti bilan murojaat qiladi
        Animal myCat = new Cat(); // Polimorfizm: Animal turidagi o‘zgaruvchi Cat obyekti bilan murojaat qiladi

        myDog.sound(); // Dog sinfidagi sound() metodini chaqiradi
        myCat.sound(); // Cat sinfidagi sound() metodini chaqiradi
    }
}