آموزش شی گرایی در PHP – اینترفیس interface

آموزش شی گرایی در PHP

Interface ها در php شبیه کلاس های abstract (انتزاعی) هستند که شامل متدهای abstract است که برنامه نویس هنگام ارث بری از آن استفاده می کند.

در کار تیمی استفاده از اینترفیس ها بسیار کاربردی است و این اطمینان خاطر را میدهد که همه برنامه نویس های تیم از متدهایی که تعریف شدند استفاده کند و کدهای آن را بنویسد.

 

چطور یک interface را پیاده سازی کنیم؟

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

 

در مثال ساده زیر یک اینترفیس برای کلاس هایی که ماشین ها (car) را هندل می کنند ساختیم و به اینصورت تمام فرزندان کلاس متعهد به استفاده از متدهای setModel() و getModel() هستند.

 

اینترفیس ها مثل کلاس های abstract شامل ثابت و متدهای انتزاعی هستند ولی بر خلاف آن فقط می توان متدهای پابلیک داشت و نمی تواند از متغییر ها استفاده کرد.

 

کلاس های که از اینترفیس استفاده یا به اصطلاح implement می کنند باید تمامی متدهای اینترفیس را همراه پارامترهای آن تعریف کنند. برای همین در کلاس miniCar خود, تمامی متدهای abstract را اضافه کردیم.

 

می توان از چند اینترفیس همزمان استفاده کرد؟

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

یک اینترفیس Vehicle با دو متد ساختیم.

 

حالا در کلاس فرزند دو اینترفیس را استفاده می کنیم:

 

تفاوت بین کلاس های abstract و interface چیست؟

دیدیم که کلاس های abstract و اینترفیس ها در پیاده سازی متدها داخل کلاس فرزند مشابه هستند ولی با این حال تفاوت هایی دارند:

Interface ها می توانند شامل متدها و ثابت های abstract باشند ولی نمی توانند متد و متغیرهای معمولی داشته باشند.

همه متدهای داخل اینترفیس باید بصورت public تعریف شوند.

یک کلاس می تواند چندین اینترفیس را استفاده کند درحالی که همزمان فقط می توان از یک کلاس abstract استفاده کرد.

 

جمع بندی

در این بخش از سری آموزش شی گرایی در PHP با نحوه استفاده interface آشنا شدیم و تفاوت آن با کلاس های abstract را یاد گرفتید.

در آموزش بعدی مفهوم و استاندارد چندریختی (polymorphism) را با مثال یاد می گیرید

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندورید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید
مطالب زیر را حتما بخوانید
دیدگاه کاربران

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

دوره های آموزشی