Przeciążanie metod, znane również jako przeciążanie funkcji lub polimorfizm czasu kompilacji, to koncepcja posiadania dwóch lub więcej metod o tej samej nazwie, ale o różnych sygnaturach w tym samym zakresie. Istnieje wiele języków programowania obsługujących tę funkcję: Ada, C ++, C #, D i Java.
Przykład metody przeciążenia w C #
Jak pokazano w powyższym przykładzie, metoda „Wielokąt” jest przeciążona 3 razy inną sygnaturą metody, tj. Rodzaj lub liczba parametrów są różne.
Zastępowanie metod, znane również jako zastępowanie funkcji lub polimorfizm w czasie wykonywania, to funkcja OOP, która umożliwia klasie potomnej zapewnienie własnej implementacji metody zdefiniowanej w klasie nadrzędnej. Implementacja w klasie potomnej zastępuje definicję metody w klasie podstawowej, pod warunkiem, że metoda w klasie potomnej powinna mieć tę samą nazwę, podpis i typ zwracany.
Przykład zastępowania metody w C #
W tym przypadku metoda losowania w klasie Source2 zastępuje metodę losowania zdefiniowaną w klasie Source1.