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() методини чақириш
}
}