بحث Polymorphism یا چند ریختی در php

ارسال شده توسط: حسین درویشی Comments: 0

بحث Polymorphism یا چند ریختی در php

Polymorphism از دو کلمه یونانی گرفته شده است. Poly به معنی «بسیاری» و Morph به معنی «اشکال» است. Polymorphism در php از شیء گرایی بودن زبان پی اچ پی خبر می دهد که این بحث در برنامه نویسی شیء گرایی از اهمیت بالایی برخوردار است.

چند ریختی در php

Polymorphism به معنی چند شکل یا چند ریختی می باشد و توانایی شکل دادن به اشکال را پلی مورفیسم می گویند؛ به عبارتی دیگر Polymorphism الگویی را در برنامه نویسی شیء گرا توصیف می کند. به طور کلی دو نوع Polymorphism داریم:

  • Polymorphism در زمان اجرا (توابع overriding)
  • Polymorphism در زمان کامپایل (توابع overloading)

نکته: PHP از Polymorphism در زمان کامپایل (Compile Time) پشتیبانی نمی کند.


Polymorphism در زمان اجرا

ساده ترین حالت برای چند ریختی در زمان اجرا Override کردن تابع در کلاس های فرزند می باشد.

به مثال زیر دقت کنید:

class Shap  
{  
function draw(){}  
}  
class Circle extends Shap  
{  
function draw()  
{  
print "Circle has been drawn.</br>";  
}  
}  
class Triangle extends Shap  
{  
function draw()  
{  
print "Triangle has been drawn.</br>";  
}  
}  
class Ellipse extends Shap  
{  
function draw()  
{  
print "Ellipse has been drawn.";  
}  
}  
$Val=array(2);  
$Val[0]=new Circle();  
$Val[1]=new Triangle();  
$Val[2]=new Ellipse();  
for($i=0;$i<3;$i++)  
{  
$Val[$i]->draw();  
}  
?>  
Output:
Circle has been drawn.
Triangle has been drawn.
Ellipse has been drawn.


بیشتر بخوانید: کلاس اینترفیس در php


مقصود از Override کردن متدها آن است که کلاس های فرزند تمام متدهای کلاس پدر را دارند و اگر در کلاس فرزند بدنه تابع به ارث برده شده کاربرد نداشته باشد، باید بدنه آن متد را به کل در کلاس فرزند تغییر دهیم. به این حالت Override کردن می گویند.


بیشتر بخوانید: کلاس بی نام در جاوا


برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *