Какво е полиморфизъм в програмирането?
sobes.tech AI
Отговор от AI
Полиморфизмът е способността на обекти от различни класове да реагират по различен начин на един и същ повикване на метод. Това се постига чрез използване на наследяване, абстрактни класове и интерфейси. В C# полиморфизмът се проявява чрез презаписване (overriding) на методи на базовия клас в производните класове и чрез претоварване (overloading) на методи.
Примери за полиморфизъм:
-
Презаписване на методи (Полиморфизъм в време на изпълнение): Производният клас предоставя собствена реализация на метод, обявен в базовия клас. За това в базовия клас се използва ключовата дума
virtual, а в производния —override.// Базов клас class Shape { // Виртуален метод, който може да бъде презаписан public virtual void Draw() { // Реализация по подразбиране } } // Производен клас 1 class Circle : Shape { // Презаписване на метода Draw public override void Draw() { // Реализация за кръг } } // Производен клас 2 class Square : Shape { // Презаписване на метода Draw public override void Draw() { // Реализация за квадрат } }В този случай може да се създаде списък от обекти
Shapeи да се извика методътDrawза всеки от тях, като ще се извика конкретната реализация за всеки тип фигура. -
Претоварване на методи (Compile-time полиморфизъм): Множество методи със същото име, но с различни сигнатури (броя или типовете на параметрите) в една и съща класа.
class Calculator { // Претоварен метод Add (за int) public int Add(int x, int y) { return x + y; } // Претоварен метод Add (за double) public double Add(double x, double y) { return x + y; } }
Полиморфизмът насърчава създаването на по-гъвкав, разширяем и лесен за поддръжка код. Той позволява писането на обобщен код, който може да работи с обекти от различни типове.