تفاوت با کلاسهای انتزاعی:
یک کلاس میتواند چندین اینترفیس را پیادهسازی کند، در حالی که فقط میتواند از یک کلاس انتزاعی ارثبری کند.
اینترفیسها فقط تعریف متدها را ارائه میدهند و هیچ پیادهسازی متدی ندارند، در حالی که کلاسهای انتزاعی میتوانند شامل پیادهسازی متدها باشند.
اینترفیسها نمیتوانند حاوی پراپرتی ها باشند و فقط میتواند ثابت هارا تعریف کند.
مثال:
فرض کنید میخواهیم یک سیستم برای مدیریت وسایل نقلیه ایجاد کنیم. ما میتوانیم یک اینترفیس به نام
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