Junior
Mi a polimorfizmus a programozásban?
sobes.tech MI
Válasz az MI-től
Polimorfizmus (a görög "sok alak" kifejezésből) az a képesség, hogy különböző objektumok ugyanarra az üzenetre (metódushívásra) különböző módon reagáljanak, az adott típusuktól függően.
Az objektum-orientált programozásban a polimorfizmus lehetővé teszi:
- Különböző osztályok objektumaival közös interfész vagy ősosztály segítségével dolgozni.
- Rugalmasabb és bővíthetőbb kód írását.
A polimorfizmus fő típusai:
- Fordítási időben (statikus) polimorfizmus: metódus túlterheléssel (method overloading) valósul meg. Ugyanazzal a névvel, de különböző szignatúrákkal (paraméterek számával vagy típusával) rendelkező metódusokat egy osztályban definiálnak.
- Futási időben (dinamikus) polimorfizmus: metódus felülírással (method overriding) valósul meg. Egy leszármazott osztályban ugyanazzal a szignatúrával rendelkező metódus van, mint az ősosztályban. A melyik metódus hívódik meg, futásidőben dől el az objektum tényleges típusától függően.
Python példával (dinamikus polimorfizmus):
class Animal:
def sound(self):
pass # Alapmetódus, felülíródik
class Dog(Animal):
def sound(self):
# A Dog osztály sound metódusának felülírása
print("Woof")
class Cat(Animal):
def sound(self):
# A Cat osztály sound metódusának felülírása
print("Meow")
# Függvény, amely az ősosztályt használva dolgozik az objektumokon
def make_animal_sound(animal):
animal.sound()
# Polimorfizmus használata
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Meghívja a Dog.sound() -> Woof
make_animal_sound(cat) # Meghívja a Cat.sound() -> Meow