Объяснение полиморфизма в PHP [с примерами]

Опубликовано: 2021-02-19

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

Как правило, он бывает двух типов: во время компиляции (перегрузка) и во время выполнения (переопределение), но полиморфизм в PHP не поддерживает перегрузку, или, другими словами, полиморфизм времени компиляции. Наиболее существенное преимущество полиморфизма в PHP заключается в том, что вам не нужно беспокоиться о технических деталях определения того, какой код написан в каком классе, поскольку все они будут использоваться одинаково.

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

Оглавление

Как реализовать полиморфизм в PHP?

Полиморфизм в PHP может быть реализован либо с помощью интерфейсов, либо с помощью абстрактных классов. Мы рассмотрим примеры, чтобы применить его в обоих направлениях.

Пример полиморфизма в PHP для реализации в интерфейсах

Вы можете рассматривать интерфейс как план для всех классов, которые его расширяют. Они похожи на классы с одним основным отличием. Вы можете объявлять и определять имена методов и аргументы в интерфейсах, но вы не можете писать код метода. Любой класс, реализующий интерфейс, будет реализовывать все его методы. Синтаксис интерфейса:

пример интерфейсаИнтерфейс{

публичная функция имя_метода();

}

Поскольку теперь вы знаете об интерфейсах, давайте посмотрим, как реализовать полиморфизм в PHP в интерфейсе.

<?php

Интерфейс ShapeExmp{

общедоступная функция calcArea();

}

класс SquareExmp реализует ShapeExmp{

частная $сторона;

публичная функция __construct($side){

$эта->сторона = $сторона;

}

публичная функция calcArea(){

$area = $эта->сторона * $эта->сторона;

echo "Площадь квадрата = ".$area;

}

}

класс RectangleExmp реализует ShapeExmp{

частная $ ширина1;

частная $ высота1;

публичная функция __construct($width1,$height1){

$это->ширина1 = $ширина1;

$this->height1 = $height1;

}

публичная функция calcArea(){

$area = $this->width1 * $this->height1;

echo “<br>Площадь прямоугольника = “.$area;

}

}

класс TriangleExmp реализует ShapeExmp{

частные $cons1;

частная $ ширина1;

частная $ высота1;

общедоступная функция __construct($cons1,$width1,$height1){

$this->cons1 = $cons1;

$это->ширина1 = $ширина1;

$this->height1 = $height1;

}

публичная функция calcArea(){

$area = $this->cons1 * $this->width1 * $this->height1;

echo “<br>Площадь треугольника= “.$area;

}

}

$squ = новый SquareExmp(8);

$squ->calcArea();

$rect = новый RectangleExmp(10,15);

$rect->calcArea();

$tri = новый TriangleExmp(0.5,10,12);

$tri->calcArea();

?>

Выход:

Площадь квадрата = 64

Площадь прямоугольника = 150

Площадь треугольника = 3

Как вы можете видеть в приведенном выше примере, мы реализовали полиморфизм в PHP через интерфейс. Мы построили и получили площади трех фигур: квадрата, треугольника и прямоугольника. Реализованные классы продолжают меняться, и аргументы тоже, но результатом всегда является площадь фигуры. Точно так же вы также можете построить и вычислить площадь других фигур, таких как круги, параллелограммы, эллипсы и многое другое.

Пример полиморфизма в PHP для реализации в абстрактных классах

Абстрактные классы в PHP — это родительские классы, в которых определены методы, но не код. Они определяются с помощью ключевого слова «abstract». Вы можете использовать их только для наследования других классов. Каждый абстрактный класс имеет один или несколько абстрактных методов. Эти классы требуют, чтобы их дочерние классы заполняли методы с тем же именем. Следовательно, разные дочерние классы используют методы одинаковым образом, тем самым реализуя полиморфизм в PHP. Давайте лучше разберемся с этим на примере полиморфизма в PHP.

<?php

абстрактный класс shapeExmp{

абстрактная защищенная функция calcArea();

}

class прямоугольникExmp расширяет shapeExmp {

вар $х,$у;

общедоступная функция __construct($x, $y){

$это->х=$х;

$это->у=$у;

}

публичная функция calcArea(){

$a=$this->x*$this->y;

вернуть $а;

}

}

класс CircleExmp расширяет shapeExmp {

вар $р;

общедоступная функция __construct($r){

$это->г=$г;

}

публичная функция calcArea(){

$пи=3,142;

$a=pow($this->r,2)*$pi;

вернуть $а;

}

}

класс SquareExmp расширяет shapeExmp {

вар $с;

публичная функция __construct($s){

$это->s=$s;

}

публичная функция calcArea(){

$a=$this->s * $this->s;

вернуть $а;

}

}

$rect=новый прямоугольникExmp(8,10);

$area=$rect->calcArea();

echo "Площадь прямоугольника = $area <br>";

$circ=новый кругExmp(5);

$area=$circ->calcArea();

echo "Обвести площадь=$area<br>";

$squ=новый квадратныйВыражение(7);

$area=$squ->calcArea();

echo "Площадь площади = $area <br>";

?>

Выход:

Площадь прямоугольника = 80

Площадь круга=78,55

Площадь квадрата = 49

Как вы можете видеть в приведенном выше примере, мы сначала создали абстрактный класс shapeExmp. Затем мы определили в нем абстрактную функцию calcArea(). Чтобы вычислить площадь круга, прямоугольника и квадрата, мы унаследовали эти классы от абстрактного класса и использовали абстрактную функцию calcArea(). Точно так же вы можете использовать абстрактные классы для реализации полиморфизма в PHP и использовать его во время выполнения.

Оформить заказ: проекты PHP на Github

Изучайте онлайн-курсы по программному обеспечению от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Это развеяло бы все ваши сомнения относительно полиморфизма в PHP. Вы можете попробовать использовать его по-разному с помощью любой IDE или онлайн-компилятора PHP. PHP стал распространенным языком программирования. В PHP доступно множество возможностей карьерного роста . Он хорошо подходит для интерактивной веб-разработки и необходим для того, чтобы стать полноценным разработчиком.

Если вы хотите продолжить карьеру в области разработки программного обеспечения с полным стеком, вы можете проверить программу upGrad и IIIT-B Executive PG в курсе разработки программного обеспечения с полным стеком . Курс предлагает вам обучение 16 различным языкам программирования и инструментам. Благодаря более чем 9 проектным заданиям, которые нужно выполнить в ходе курса, upGrad гарантирует вам трудоустройство. Он предлагает вам более 500 часов учебных материалов, которые помогут вам научиться создавать надежные и масштабируемые веб-сайты и приложения.

Что такое объектно-ориентированное программирование?

Что такое полиморфизм в программировании?

Полиморфизм — это способность иметь более одной формы. Например, у собаки 4 ноги, но ноги разные. Это другая форма одного и того же объекта. В компьютерном программировании полиморфизм — это возможность иметь разные входные данные и иметь один выходной. Например, у нас может быть класс Person, Worker и Customer, и каждый человек имеет разные входные данные. У них разные входные данные, так как у каждого человека свое имя, адрес и номер телефона. Однако вывод одинаков для всех из них, что является классом Person.

Как классы и объекты работают в программировании?

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