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(); // Методи sound() аз синфи Dog-ро даъват мекунад
myCat.sound(); // Методи sound() аз синфи Cat-ро даъват мекунад
}
}