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() მეთოდი
}
}