TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #21 747
اینترفیس‌ها (Interfaces) یکی دیگر از مفاهیم مهم برنامه نویسی شی‌گرا هستند. آنها به عنوان قراردادی بین کلاس‌ها عمل می‌کنند و تعیین می‌کنند که کلاس‌هایی که این اینترفیس‌ها را پیاده‌سازی می‌کنند، باید چه متدهایی را ارائه دهند، و اطمینان می‌دهند که کلاس‌های پیاده‌سازی‌کننده، تمام متدهای مورد نیاز را پیاده‌سازی کنند.

تفاوت با کلاس‌های انتزاعی:
یک کلاس می‌تواند چندین اینترفیس را پیاده‌سازی کند، در حالی که فقط می‌تواند از یک کلاس انتزاعی ارث‌بری کند.
اینترفیس‌ها فقط تعریف متدها را ارائه می‌دهند و هیچ پیاده‌سازی متدی ندارند، در حالی که کلاس‌های انتزاعی می‌توانند شامل پیاده‌سازی متدها باشند.
اینترفیس‌ها نمی‌توانند حاوی پراپرتی ها باشند و فقط میتواند ثابت هارا تعریف کند.

مثال:
فرض کنید می‌خواهیم یک سیستم برای مدیریت وسایل نقلیه ایجاد کنیم. ما می‌توانیم یک اینترفیس به نام VehicleInterface داشته باشیم که توابعی مانند start و stop را تعریف می‌کند. سپس، کلاس‌های مختلف وسایل نقلیه می‌توانند این اینترفیس را پیاده‌سازی کنند.

interface VehicleInterface {
public function start();
public function stop();
}

class Car implements VehicleInterface {
public function start() {
echo "Car started\n";
}

public function stop() {
echo "Car stopped\n";
}
}

class Bike implements VehicleInterface {
public function start() {
echo "Bike started\n";
}

public function stop() {
echo "Bike stopped\n";
}
}

$car = new Car();
$car->start(); // Car started
$car->stop(); // Car stopped

$bike = new Bike();
$bike->start(); // Bike started
$bike->stop(); // Bike stopped


در این مثال، VehicleInterface یک اینترفیس است که تعریف می‌کند هر وسیله نقلیه‌ای که آن را پیاده‌سازی می‌کند باید دارای متدهای start و stop باشد. کلاس‌های Car و Bike هر دو این اینترفیس را پیاده‌سازی می‌کنند و متدهای مورد نظر را ارائه می‌دهند. این ساختار اطمینان می‌دهد که هر وسیله نقلیه‌ای که از این اینترفیس پیروی می‌کند، قابلیت‌های اساسی مشترکی دارد.

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 👍 7
  • 🔥 3
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →