Sobes.tech
Middle

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:

  1. 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;
        }
    }
    
  2. 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).