Sobes.tech
Junior

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

sobes.tech Süni İntellekt

AI-dan cavab

Miras kalıtım, yeni bir sinfinin (alt sinf/uşaq sinfi) mövcud sinfinin (üst sinf/valideyn sinfi) xüsusiyyətlərini (sahələr) və davranışlarını (metodlar) miras alma mexanizmidir; bu, funksionallığı genişləndirməyə və ya üst yazmağa imkan verir. Bu, kodun təkrar istifadəsini təşviq edir və "bir şeydir" (is-a) münasibətlərini qurur.

Polimorfizm, müxtəlif siniflərə aid obyektlərin, icra zamanı onların konkret növünə görə, eyni metod adına fərqli cavab vermək qabiliyyətidir. Bu, kodun elastikliyini və genişləndirilməsini təmin edir, alt sinif obyektlərini super sinfə istinad vasitəsilə işləməyə imkan verir.

Bu konseptlər, istinad növü məlumat tiplərində (sinflərdə), əsas rol oynayır:

  • Miras: Alt sinif, super sinfin üzvlərinə çıxış əldə edir və özünə aid olanları əlavə edə və ya miras alınmış metodların davranışını dəyişə bilər (üst yazma - overriding). Alt sinif obyekti, super sinif obyekti gözlənilən hər yerdə istifadə oluna bilər.
  • Polimorfizm: Eyni irs hierarxiyasına aid müxtəlif obyektlər, eyni kodla işlənə bilər, eyni metodu çağırır, lakin bu metodun tətbiqi, icra zamanı obyektin konkret növünə görə spesifik olacaq.

Java nümunəsi:

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

// Alt sinif (uşaq sinfi), Animal-dən irs alır
class Dog extends Animal {
    // Super sinif metodunu üst yazır
    @Override
    public void makeSound() {
        System.out.println("Hav!");
    }
}

// Alt sinif (uşaq sinfi), Animal-dən irs alır
class Cat extends Animal {
    // Super sinif metodunu üst yazır
    @Override
    public void makeSound() {
        System.out.println("Miyav!");
    }
}

// Polimorfizm nümunəsi
public class PolymorphismExample {
    public static void main(String[] args) {
        Animal myAnimal = new Animal(); // super sinif obyekti
        Animal myDog = new Dog();       // alt sinif obyekti, super sinfə istinad
        Animal myCat = new Cat();       // alt sinif obyekti, super sinfə istinad

        myAnimal.makeSound(); // Çıxış: Səs çıxarır
        myDog.makeSound();    // Çıxış: Hav! (polimorfizm - Dog metodunu çağırır)
        myCat.makeSound();    // Çıxış: Miyav! (polimorfizm - Cat metodunu çağırır)
    }
}