داغ ترین ویدیو بابلز لرن : هک کلاس های مجازی توسط متین برونسی

ویژگی تصویر

کلاس های Abstract در PHP

  /  PHP   /  کلاس های انتزاعی در PHP
بنر تبلیغاتی الف
آموزش PHP

در این بخش به برسی کلاس های انتزاعی در PHP می پردازیم، کلاس های abstract در PHP به کلاس هایی گفته می شود که قابل نمونه گیری نیستند و تنها برای ارث بری استفاده می شوند.

یعنی چی ؟!

کلاس های انتزاعی به تنهایی کارایی و کاربردی ندارند و نمی توانیم از آنها اشیا بسازیم، کلاس های abstract برای تکمیل شدن به کلاس های فرزند خود نیاز دارند و تنها برای ارث بری استفاده می شوند که در ادامه مثال ها و توضیحات بیشتری خواهیم داد.

هر کلاس انتزاعی حداقل یک متد از نوع abstract را شامل می شود. متد انتزاعی یا همان abstract متدی هست که اعلان شده اما کد نویسی آن پیاده سازی نشده است.

برای تعریف یک کلاس یا متد انتزاعی از کلید واژه abstract استفاده می کنیم.

نحوه استفاده از abstract در کلاس های PHP

تماشا در حالت تمام صفحه

هنگامی که یک کلاس فرزند می خواهد از کلاس والد از نوع abstract ارث بری کند، باید تمامی متد های کلاس والد را مجدداً با همان نام بازنویسی کند، همچنین باید نوع سطح دسترسی متد ها در کلاس فرزند هم یکسان باشد یعنی اگر یک متد داخل کلاس والد از نوع protected هست باید در کلاس فرزند هم از نوع protected باشد و حتی تعداد آرگومان های متد نیز باید یکسان باشد، البته کلاس فرزند می تواند آرگومان های اضافی و خاص خود را نیز داشته باشد.

در نتیجه هنگامی که یک کلاس فرزند از کلاس انتزاعی ارث بری می کند این قوانین را داریم:

  • متد کلاس فرزند باید با همان نام تعریف شود و متد انتزاعی والد را مجدد اعلام کند.
  • متد کلاس فرزند باید با همان نوع سطح دسترسی یکسان یا کمتر تعریف بشود.
  • تعداد آرگومان های مورد نیاز باید یکسان باشد. با این حال، کلاس فرزند می تواند آرگومان های اختیاری خود را نیز داشته باشد.

مثال

تماشا در حالت تمام صفحه

خروجی

Choose German quality! I'm an Audi!
Proud to be Swedish! I'm a Volvo!
French extravagance! I'm a Citroen!
توضیحات در رابطه با مثال بالا

کلاس های Audi و Volvo و Citroen از کلاس انتزاعی Car ارث بری می کنند، این کلاس ها می توانند از پراپرتی های $name و متد __constract($name) استفاده کنند، با توجه به اینکه داخل کلاس والد ما یک متد از نوع abstract داریم (intro()) تمام کلاس های فرزند باید متد intro() را مجدد کد نویسی کنند که در واقع این متد قرار است پیغامی را نمایش بدهد.

مثال های بیشتر برای کلاس های Abstract در PHP

در این بخش برای درک بهتر مطالب مثال هایی را قرار داده ایم، با دقت کد ها را مطالعه و تجزیه و تحلیل کنید سپس برای یادگیری بهتر آنها را آزمون و خطا کنید.

مثال

در مثال زیر ما یک متد انتزاعی داریم که دارای یک آرگومان است:


این قسمت/بخشی از محتوا مخفی شده است و فقط برای اعضای وب سایت قابل مشاهده می باشد، لطفاً با حساب کاربری وارد شوید.

خروجی

Mr. John Doe
Mrs. Jane Doe

مثال

در مثال زیر ما یک متد انزاعی داریم که دارای یک آرگومان است، همچنین کلاس های فرزند همان متد را با چندین آرگومان اختیاری دیگر تعریف می کنند:


این قسمت/بخشی از محتوا مخفی شده است و فقط برای اعضای وب سایت قابل مشاهده می باشد، لطفاً با حساب کاربری وارد شوید.

خروجی

Dear Mr. John Doe
Dear Mrs. Jane Doe

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج