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