TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #20 922
کلاس‌های انتزاعی (Abstract Classes) در PHP یکی از مفاهیم پایه‌ای در برنامه‌نویسی شی‌گرا هستند.
این کلاس‌ها به عنوان قالبی برای سایر کلاس‌ها عمل می‌کنند و نمی‌توان از آن‌ها به طور مستقیم نمونه‌سازی (Instantiate) کرد.
به بیان دیگر، شما نمی‌توانید یک شی مستقیم از یک کلاس انتزاعی ایجاد کنید.
هدف از کلاس‌های انتزاعی، تعریف یک قرارداد برای کلاس‌های وراثتی است تا اطمینان حاصل شود که تمام کلاس‌های فرزند، روش‌های خاصی را پیاده‌سازی می‌کنند.

کلاس‌های انتزاعی اجازه می‌دهند تا شما یک سری از توابع (متدها) را که باید در کلاس‌های فرزند پیاده‌سازی شوند، تعریف کنید.

مثال:

فرض کنید می‌خواهیم یک سیستم برای مدیریت حیوانات در یک باغ وحش ایجاد کنیم.
ما می‌توانیم یک کلاس انتزاعی به نام Animal داشته باشیم که توابع انتزاعی مانند makeSound را تعریف می‌کند. سپس، کلاس‌های فرزند می‌توانند این تابع را بر اساس نوع حیوان پیاده‌سازی کنند.

abstract class Animal {
protected $name;

public function __construct($name) {
$this->name = $name;
}

// تابع انتزاعی
abstract public function makeSound();

public function getName() {
return $this->name;
}
}

class Dog extends Animal {
public function makeSound() {
return "Woof";
}
}

class Cat extends Animal {
public function makeSound() {
return "Meow";
}
}

$dog = new Dog("Sag");
echo $dog->getName() . " says " . $dog->makeSound(); // Sag says Woof

$cat = new Cat("Goorbe");
echo $cat->getName() . " says " . $cat->makeSound(); // Goorbe says Meow
در این مثال، Animal یک کلاس انتزاعی است که نمی‌توان از آن نمونه‌سازی کرد. این کلاس یک تابع انتزاعی به نام makeSound تعریف می‌کند که هر کلاس فرزند باید آن را پیاده‌سازی کند. Dog و Cat دو کلاس فرزند هستند که از Animal ارث‌بری می‌کنند و تابع makeSound را پیاده‌سازی می‌کنند.


کلاس‌های انتزاعی به شما امکان می‌دهند تا ساختار پایه‌ای برای کلاس‌های فرزند تعریف کنید و اطمینان حاصل کنید که تمام کلاس‌های فرزند، رابط کاربری مشخصی را پیاده‌سازی می‌کنند.

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • 🔥 10
  • 👍 3
  • ❤ 2
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 →