Junior
Мо дароии ва полиморфизм дар намудҳои маълумоти истинодӣ чӣ аст?
sobes.tech AI
Ҷавоб аз AI
Мутазира — ин механизам, ки имкон медиҳад, ки синфи нав (подсинф/чавон) хосиятҳо (майдонҳо) ва рафтор (методҳо) синфи мавҷударо (суперкласс/падар) мерос гирад, функсионалиро васеъ ё иваз кунад. Ин кӯмак мекунад, ки коди такроршаванда ва муносибатҳои "ҳаст" (is-a) барқарор шаванд.
Полиморфизм — имконияти объектҳои синфҳои гуногун ба номи як метод ҷавоб додан ба тариқи гуногун, вобаста ба навъи мушаххаси худ дар вақти иҷро. Ин барои чандирӣ ва васеъшавии коди кӯмак мерасонад, ки объектҳои подсинфҳоро тавассути истинод ба суперкласс коркард кунад.
Дар намудҳои маълумоти истинодӣ (класаҳо), ин консепсияҳо нақши калидӣ доранд:
- Меросгирӣ: Подсинф ба аъзои суперкласс дастрасӣ дорад ва метавонад хосиятҳои худро илова ё рафторҳои унаследшудаи методҳоро иваз кунад (override). Объекти подсинф метавонад дар ҳар ҷо истифода шавад, ки дар он интизор меравад, ки объекти суперкласс бошад.
- Полиморфизм: Объектҳои гуногун, ки ба як ҳиерархияи меросгӣ тааллуқ доранд, метавонанд бо як код коркард шаванд, ки як ва ҳамон методро даъват мекунанд, аммо иҷрои он барои навъи мушаххаси объект дар вақти иҷро фарқ мекунад.
Масал дар Java:
// Суперкласс (падар)
class Animal {
public void makeSound() {
System.out.println("Мекунад садо");
}
}
// Подсинф (чавон), мерос аз Animal
class Dog extends Animal {
// Иваз кардани метод аз суперкласс
@Override
public void makeSound() {
System.out.println("Гав!");
}
}
// Подсинф (чавон), мерос аз Animal
class Cat extends Animal {
// Иваз кардани метод аз суперкласс
@Override
public void makeSound() {
System.out.println("Мяу!");
}
}
// Масал бо полиморфизм
public class PolymorphismExample {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // объекти суперкласс
Animal myDog = new Dog(); // объекти подсинф, истинод ба суперкласс
Animal myCat = new Cat(); // объекти подсинф, истинод ба суперкласс
myAnimal.makeSound(); // Натиҷа: Мекунад садо
myDog.makeSound(); // Натиҷа: Гав! (полиморфизм - даъват мешавад методи Dog)
myCat.makeSound(); // Натиҷа: Мяу! (полиморфизм - даъват мешавад методи Cat)
}
}