💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ amir tavakolian
پلی مورفیسم به زبان ساده
جامعه پی اچ پی ایجاد شده در ۱۳ خرداد ۱۳۹۹

سلام به همه دوستان

یک سری مطالعه راجب پلی مورفیسم داشتم که خلاصه مقالات رو اینجا قرار میدم

امیدوارم در درک بهتر پلی مورفیسم بهتون کمک کنه.

 

در مبحث پلی مورفیسم؛ زمانی که کار یکی هستش ولی روش انجام کار متفاوت باشه؛ از پلی مورفیسم استفاده میشه.

برای مثال یک درب رو در نظر بگیرید.  فرق نمیکنه که درب اتاق باشه؛ یا درب هواپیما ؛ قطار، بطری آب و...

 

هر درب؛  2 متد میتونه داشته باشه:

باز شدن (open)

بسته شدن (close)

 

حالا اگه بخوایم این مثال رو به کد تبدیل کنیم به این صورت هستش.

 

class door
{
  public function open()
  {
    echo "درب باز شد";
  }
  public function close()
  {
    echo "درب بسته شد";
  }
}

 

و حالا اگه بخوایم واسه اشیا دیگه که این 2 متد رو دارند؛ کد نویسی کنیم به این صورت میشه:


class havapeima extends door
{
  public function open()
  {
    echo "درب هواپیما باز شد";
  }
  public function close()
  {
    echo "درب هواپیما بسته شد";
  }
}

class water extends door
{
  public function open()
  {
    echo "درب بطری آب باز شد";
  }
  public function close()
  {
    echo "درب بطری آب بسته شد";
  }
}

 

مثالی دیگه که میشه زد؛ کارمندهای یک شرکت رو در نظر بگیرید.

برنامه نویس ها

مدیر شرکت 

منشی

 

تمام این افراد متدهای یکسانی میتونن داشته باشند مثل؛ ساعت ورود و خروج؛ محاسبه میزان حقوق و...

حالا اگه بخوایم به کد تبدیل کنیم به این صورت نوشته میشه:

<?php
class karmand
{
  public function vorod_va_khoroj()
  {
    echo "ساعت ورود هشت صبح و خروج 5 عصر";
  }
  public function mohasebe_hoghogh()
  {
    echo "محاسبه حقوق";
  }
}
class programmers extends karmand
{
  public function mohasebe_hoghogh()
  {
    echo "ساعت کاری * 1500000";
  }
}
class monshi extends karmand
{
  public function mohasebe_hoghogh()
  {
    echo "2000000 حقوق ثابت";
  }
}