Sobes.tech
Junior

İrsi və çox formallıq arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Mirasxorlama — bu, sinf (alt sinf, törəmə sinf) başqa sinfin (ata, superklass) sahələrini və metodlarını miras almağa imkan verən mexanizmdir. Bu, kodun təkrar istifadəsini təşviq edir.

Polimorfizm — bu, eyni interfeys istifadə edərək müxtəlif əsas formalara nümayiş etdirmək imkanını verir. Java kontekstində, bu, referans tipləri dəyişəninin öz növü və ya onun hər hansı alt növü obyektinə istinad edə biləcəyini ifadə edir. Bu, tərtib və iş vaxtı polimorfizm (metodların üst-üstə qoyulması) və icra vaxtı polimorfizm (metodların yenidən yazılması) kimi fərqlənir.

Əsas fərq:

  • Miras sinflər arasında əlaqələri müəyyən edir (valideyn-uşaq) və kodun təkrar istifadəsinə imkan verir.
  • Polimorfizm ümumi interfeys vasitəsilə müxtəlif obyektlərə müraciət etməyə və obyektin faktiki növünə əsasən uyğun metodu icra etməyə imkan verir.

İş vaxtı polimorfizm nümunəsi:

class Animal {
    public void sound() {
        System.out.println("Heyvan səs çıxarır");
    }
}

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

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

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

        myDog.sound(); // Dog sinifinin sound() metodunu çağırır
        myCat.sound(); // Cat sinifinin sound() metodunu çağırır
    }
}