Co je to polymorfismus v objektově orientovaném programování (OOP)?
sobes.tech AI
Odpověď od AI
Polymorfismus v objektově orientovaném programování (OOP) je vlastnost objektů, že se chovají různě v závislosti na jejich typu, což umožňuje používat stejný rozhraní (metodu) pro zpracování různých typů dat. To zajišťuje flexibilitu a rozšiřitelnost kódu.
Hlavní typy polymorfismu:
-
Polymorfismus při kompilaci (statický): Realizuje se pomocí přetížení metod. Různé metody mají stejný název, ale liší se v sadě a/nebo typech parametrů. Kompilátor určuje, kterou metodu volat na základě podpisu.
class Calculator { // Přetížení metody add public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } -
Polymorfismus při běhu (dynamický): Realizuje se pomocí přepsání metod. Podtřída poskytuje svou specifickou implementaci metody, která je již definována v nadtřídě. Výběr konkrétní implementace se děje při běhu, na základě skutečného typu objektu.
class Animal { // Základní metoda public void sound() { System.out.println("Zvíře vydává zvuk"); } } class Dog extends Animal { // Přepsání metody sound @Override public void sound() { System.out.println("Pes štěká"); } } // Příklad použití // Animal myDog = new Dog(); // Skutečný typ objektu - Dog // myDog.sound(); // Volá se metoda sound z třídy Dog
Polymorfismus umožňuje psát abstraktnější a jasně popisující problémovou oblast kód, usnadňuje údržbu a přidávání nových funkcí bez změny stávajícího kódu. V kontextu QA a QA Automation je pochopení polymorfismu důležité pro práci s automatizačními frameworky, kde se používají abstraktní třídy/rozhraní a jejich konkrétní implementace (například při práci s ovladači pro různé prohlížeče v Selenium).