Рубрики

Perl | Полиморфизм в ООП

Полиморфизм — это способность любых данных обрабатываться более чем в одной форме. Само слово обозначает значение, поскольку poly означает много, а morphism означает типы . Полиморфизм является одним из важнейших понятий объектно-ориентированного языка программирования. Наиболее распространенное использование полиморфизма в объектно-ориентированном программировании происходит, когда ссылка на родительский класс используется для ссылки на объект дочернего класса. Здесь мы увидим, как представить любую функцию во многих типах и формах.
Реальный пример полиморфизма, когда человек может играть разные роли в жизни. Как женщина одновременно является матерью, женой, работницей и дочерью. Таким образом, один и тот же человек должен иметь много функций, но должен реализовывать каждую из них в соответствии с ситуацией и состоянием. Полиморфизм рассматривается как одна из важных особенностей объектно-ориентированного программирования.

Полиморфизм — ключевая сила объектно-ориентированного программирования. Очень важно, чтобы языки, которые не поддерживают полиморфизм, не могли рекламировать себя как объектно-ориентированные языки. Языки, которые имеют классы, но не обладают способностью полиморфизма, называются объектно-ориентированными языками. Таким образом, это очень важно для объектно-ориентированного языка программирования.
Это способность объекта или ссылки принимать различные формы в разных случаях. Он реализует концепцию перегрузки функций, переопределения функций и виртуальных функций.

Polymorphism is a property through which any message can be sent to objects of multiple classes, and every object has the tendency to respond in an appropriate way depending on the class properties.

Это означает, что полиморфизм — это метод в объектно-ориентированном языке программирования, который делает разные вещи в зависимости от класса объекта, который его вызывает. Например, $ square-> area () вернет площадь квадрата, а $ triangle-> area () вернет площадь треугольника. С другой стороны, $ object-> area () должен будет вычислить площадь, в соответствии с которой был вызван класс $ object.

Полиморфизм лучше всего объяснить с помощью следующего примера:

use warnings;

  
# Создание класса с использованием пакета

package A;

  
# Создание конструктора

sub new

{

   

    # shift будет принимать имя пакета 'vehicle'

    # и присвоить его переменной 'class'

    my $class = shift;

    my $self = {

                  'name' => shift,

                  'roll_no' => shift

               };

      

    sub poly_example

    {

      print("This corresponds to class A\n");

    }

};

  

package B;

  
# Массив @ISA содержит список
# родительских классов этого класса, если таковые имеются

my @ISA = (A);

  

sub poly_example

{

  print("This corresponds to class B\n");

  
}

  

package main;

  
B->poly_example();
A->poly_example();

Выход:

Для первого вывода метод poly_example (), определенный в классе B, переопределяет определение, унаследованное от класса A, и наоборот для второго вывода. Это позволяет добавлять или расширять функциональность любого ранее существовавшего пакета без переписывания полного определения всего класса снова и снова. Таким образом, это облегчает работу программиста.

Рекомендуемые посты:

Perl | Полиморфизм в ООП

0.00 (0%) 0 votes