Sobes.tech
Junior

რა არის მემკვიდრეობა და პოლიმორფიზმი?

sobes.tech AI

პასუხი AI-სგან

მემკვიდრეობა — ეს არის მექანიზმი, რომელიც საშუალებას აძლევს კლასს (შთამომავალი, ქვესკლასი) მემკვიდრეობით მიიღოს სხვა კლასის (მშობელი, სუპერკლასი) ველები და მეთოდები. ეს ხელს უწყობს კოდის განმეორებით გამოყენებას.

პოლიმორფიზმი — ეს არის შესაძლებლობა, გამოიყენოს ერთი და იგივე ინტერფეისი სხვადასხვა ძირითადი ფორმების გამოსახატავად. Java-ს კონტექსტში, ეს ნიშნავს, რომ რეფერენცული ტიპის ცვლადი შეიძლება მიმართოს თავისივე ტიპის ობიექტს ან მისი ნებისმიერი ქვეტიპის ობიექტს. განასხვავებენ კომპილაციის დროის პოლიმორფიზმს (მეთოდების გადატვირთვა) და შესრულების დროის პოლიმორფიზმს (მეთოდების გადაფარვა).

ძირითადი განსხვავება:

  • მემკვიდრეობა განსაზღვრავს ურთიერთობებს კლასებს შორის (მშობელი-შვილი) და საშუალებას აძლევს კოდის განმეორებით გამოყენებას.
  • პოლიმორფიზმი საშუალებას აძლევს სხვადასხვა ობიექტზე წვდომას საერთო ინტერფეისის მეშვეობით, შესაბამისი მეთოდის შესრულებით რეალურ ობიექტის ტიპის მიხედვით შესრულების დროს.

მოქმედების დროს პოლიმორფიზმის მაგალითი:

class Animal {
    public void sound() {
        System.out.println("ცხოველი ხმას გამოსცემს");
    }
}

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

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

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // პოლიმორფიზმი: ცვლადი ტიპი Animal, რომელიც მიმართავს Dog ობიექტს
        Animal myCat = new Cat(); // პოლიმორფიზმი: ცვლადი ტიპი Animal, რომელიც მიმართავს Cat ობიექტს

        myDog.sound(); // გამოიძახება Dog-ის sound() მეთოდი
        myCat.sound(); // გამოიძახება Cat-ის sound() მეთოდი
    }
}