Sobes.tech
Middle

Ma'lumot turlarining referens turlari kontekstida meros va polimorfizm nima?

sobes.tech AI

AIdan javob

Merosxo'rlik - bu mavjud sinf (asosiy, ota) maydonlari va metodlarini meros qilib oladigan yangi sinf (voris, bolalar) yaratishga imkon beradigan mexanizmdir. Bu kodni qayta ishlatishni va sinf hierarhiyalarini yaratishni rag'batlantiradi.

Polimorfizm - turli sinflarga tegishli obyektlarning bir xil yoki turli xil xulq-atvorini bajarish imkoniyatidir. Asosiy ikki turi mavjud: statik (metodlarni ortiqcha yuklash) va dinamik (metodlarni qayta yozish).

Qarindosh tiplari kontekstida, meros olish asosiy sinf o'zgaruvchisining voris sinf ob'ektiga murojaat qilishiga imkon beradi. Bu holatda, polimorfizm shunday bo'ladiki, bunday o'zgaruvchi orqali metod chaqirilganda, haqiqiy ob'ektning turiga mos versiya bajariladi, referens turiga emas (dinamik polimorfizm).

Java misoli:

// Asosiy sinf
class Animal {
    public void makeSound() {
        System.out.println("Ovoz chiqaradi");
    }
}

// Voris sinf 1
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Hov hov");
    }
}

// Voris sinf 2
class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miyov miyov");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Animal turidagi o'zgaruvchi, Dog ob'ektiga murojaat qilmoqda
        Animal myCat = new Cat(); // Animal turidagi o'zgaruvchi, Cat ob'ektiga murojaat qilmoqda

        myDog.makeSound(); // Dog metodini chaqiradi (polimorfizm)
        myCat.makeSound(); // Cat metodini chaqiradi (polimorfizm)
    }
}

Ushbu misolda, myDog va myCat referens turlari Animal bo'lsa-da, polimorfizm tufayli, makeSound() chaqirilganda, mos Dog va Cat implementatsiyalari bajariladi.