Какво е полиморфизъм?

В компютърните науки, полиморфизмът се отнася до способността на езика за програмиране да интерпретира обекти по различни начини въз основа на техния клас или тип данни. По същество способността на един метод да бъде приложен към извлечените класове и да постигне подходящ изход.

Три клона на полиморфизма

  • Ad hoc полиморфизмът е, когато дадена функция се изпълнява по различен начин в зависимост от ограничен брой специфични типове и комбинации от входни параметри. Пример за ad hoc полиморфизъм е претоварването на функциите.
  • Параметричният полиморфизъм е, когато кодът е написан без спецификация на типа, и така може да се използва с произволен брой различни типове, посочени по-късно. В обектно-ориентираното програмиране това често се нарича генерично програмиране.
  • Полиморфизмът на включването, известен също като подтип, е, когато едно име може да се отнася до случаи на произволен брой различни класове, стига те да споделят една и съща суперклас.

Пример за полиморфизъм в Java

Примерния код

 class OverloadedObject {void overloadedMethod (int a) {System.out.println ("Този метод се извиква, когато параметърът е цяло число. a =" + a); } void overloadedMethod (int a, int b) {System.out.println ("Този метод се извиква, когато има два параметъра и те са цели числа. a =" + a + ", b =" + b); } void overloadedMethod (double a) {System.out.println ("Този метод се извиква, когато има един параметър и той е номер с двойна прецизност. a =" + a); }} клас DemonstrateOverloading {публичен статичен void main (String args []) {OverloadedObject myObj = new OverloadedObject (); myObj.overloadedMethod (1); myObj.overloadedМетод (2, 3); myObj.overloadedMethod (4); }} 

Примерно извеждане на код

 Този метод се извиква, когато параметърът е цяло число. a = 1 Този метод се извиква, когато има два параметъра и те са цели числа. a = 2, b = 3 Този метод се извиква, когато параметърът е число с двойна прецизност. a = 4 

Забележете, че той произвежда различен изход, базиран на различни входни параметри, въпреки че класа и името на метода, извикани, са едни и същи всеки път.

Обектно-ориентиран, изход, параметър, полиморфен вирус, език за програмиране, програмни термини