Sobes.tech
Middle

İstinad növü kontekstində irsiyyət və çox formallıq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Miras, mövcud bir sinifin (əsas, valideyn) sahələrini və metodlarını miras alan yeni bir sinif (törəmə, övlad) yaratmağa imkan verən mexanizmdir. Bu, kodun təkrar istifadəsini və sinif hierarxiyalarının yaradılmasını təşviq edir.

Polimorfizm, müxtəlif siniflərə aid obyektlərin eyni və ya fərqli davranışlar göstərə bilmə qabiliyyətidir. İki əsas növü var: statik (metodların yüklənməsi) və dinamik (metodların üst-örtülməsi).

İstinad tipləri kontekstində, miras alma, əsas sinif dəyişəninin törəmə sinif obyektinə istinad edə bilməsinə imkan verir. Bu halda, polimorfizm, belə bir dəyişən vasitəsilə metod çağırıldıqda, obyektin faktiki növündən olan versiyanın işlədilməsidir, istinad növündən deyil (dinamik polimorfizm).

Java nümunəsi:

// Əsas sinif
class Animal {
    public void makeSound() {
        System.out.println("Səs çıxarır");
    }
}

// Törəmə sinif 1
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Hav hav");
    }
}

// Törəmə sinif 2
class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miyav miyav");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Animal tipli dəyişən, Dog obyektinə istinad edir
        Animal myCat = new Cat(); // Animal tipli dəyişən, Cat obyektinə istinad edir

        myDog.makeSound(); // Dog-un metodunu çağırır (polimorfizm)
        myCat.makeSound(); // Cat-in metodunu çağırır (polimorfizm)
    }
}

Bu nümunədə, myDogmyCat referens tipləri Animal olsa da, polimorfizm sayəsində, makeSound() çağırıldıqda, DogCat-in müvafiq tətbiqləri icra olunur.