Junior
Kas ir polimorfisms programmēšanā?
sobes.tech AI
Atbilde no AI
Polimorfisms (no grieķu vārda "daudzas formas") ir spēja dažādiem objektiem reaģēt uz to pašu ziņojumu (metodes izsaukumu) dažādos veidos atkarībā no to tipa.
Objektorientētajā programmēšanā polimorfisms ļauj:
- Darboties ar dažādu klases objektiem caur kopēju saskarni vai pamata klasi.
- Radīt elastīgāku un paplašināmu kodu.
Galvenie polimorfisma veidi:
- Kompilācijas laikā (statiskais) polimorfisms: realizējas, izmantojot metožu pārslogojumu (method overloading). Metodes ar vienādu nosaukumu, bet dažādām signatūrām (parametru skaitu vai tipus), tiek definētas vienā klasē.
- Izpildes laikā (dinamiskais) polimorfisms: realizējas, pārrakstot metodes (method overriding). Apakšklasē metode ir ar tādu pašu signatūru kā vecākklasē. Konkrēta metodes izsaukšana tiek noteikta izpildes laikā, atkarībā no objekta faktiskā tipa.
Piemērs Python valodā (dinamisks polimorfisms):
class Animal:
def sound(self):
pass # Pamatmetode, kas tiks pārrakstīta
class Dog(Animal):
def sound(self):
# Pārrakstīšana Dog klasē
print("Woof")
class Cat(Animal):
def sound(self):
# Pārrakstīšana Cat klasē
print("Meow")
# Funkcija, kas strādā ar objektiem caur pamatklasi Animal
def make_animal_sound(animal):
animal.sound()
# Polimorfisma izmantošana
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Izsauks Dog.sound() -> Woof
make_animal_sound(cat) # Izsauks Cat.sound() -> Meow