İ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ə, myDog və myCat referens tipləri Animal olsa da, polimorfizm sayəsində, makeSound() çağırıldıqda, Dog və Cat-in müvafiq tətbiqləri icra olunur.