polimorfizmus
Metódus felülírás (Overriding): Ez a polimorfizmus típusa lehetővé teszi, hogy egy alosztály felülbírálja a szülőosztályban definiált metódust. Ezáltal a gyermek osztály saját implementációját adhatja a metódusnak, amely a szülő osztályban található.
Példa metódus felülírásra (Java):
class Animal {
void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
void sound() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
void sound() {
System.out.println("Meow!");
}
}
public class Main {
public static void main(String args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.sound(); // Kimenet: Woof!
myCat.sound(); // Kimenet: Meow!
}
}
Metódus túlterhelés (Overloading): A metódus túlterhelés lehetővé teszi, hogy egy osztályon belül több metódus ugyanazzal a névvel, de különböző paraméterekkel legyen definiálva. A fordító a metódusok paraméterei alapján dönt arról, hogy melyik metódust kell hívni.
Példa metódus túlterhelésre (Java):
class MathUtils {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
}
public class Main {
public static void main(String args) {
MathUtils math = new MathUtils();
System.out.println(math.add(5, 10)); // Kimenet: 15
System.out.println(math.add(5.5, 10.5)); // Kimenet: 16.0
System.out.println(math.add(5, 10, 15)); // Kimenet: 30
}
}
A polimorfizmus egy kulcsfontosságú fogalom az objektum-orientált programozásban, amely lehetővé teszi, hogy a különböző osztályokban az azonos nevű metódusok eltérő módon működjenek. A metódus felülírás és a metódus túlterhelés révén a polimorfizmus elősegíti a rugalmasságot, az újrafelhasználást és a karbantartást, miközben kihívásokat is jelenthet a teljesítmény és a kód komplexitása terén.