💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ حامد زالوند
کار Abstract
جامعه پی اچ پی ایجاد شده در ۲۰ مرداد ۱۴۰۳

سلام وقت بخیر 

شرمنده میشه این Abstract  بیشتر توضیح بدی تو اموزش انچنان درک نکردم مرسی 

سلام،

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

حالا چطوری؟ وقتی یه کلاس رو به عنوان Abstract تعریف می‌کنی، نمی‌تونی مستقیم ازش یه شیء بسازی. یعنی خود کلاس Abstract رو نمی‌تونی استفاده کنی، ولی می‌تونی ازش به عنوان پایه برای کلاس‌های دیگه استفاده کنی. این کلاس‌ها باید متدهایی رو که توی کلاس Abstract تعریف شده، حتماً پیاده‌سازی کنن.

abstract class Animal {
    abstract public function makeSound();
}
class Dog extends Animal {
    public function makeSound() {
        echo "Woof!";
    }
}
class Cat extends Animal {
    public function makeSound() {
        echo "Meow!";
    }
}
$dog = new Dog();
$dog->makeSound(); // Woof!
$cat = new Cat();
$cat->makeSound(); // Meow!

اینجا Animal یه کلاس Abstract هست. توش یه متد به اسم makeSound داریم که هنوز پیاده‌سازی نشده، فقط گفتیم که هر حیوونی که از این کلاس ارث‌بری می‌کنه باید این متد رو داشته باشه. بعدش کلاس‌های Dog و Cat این متد رو پیاده‌سازی کردن، یعنی گفتن هر حیوون چه صدایی بده.

اینطوری با استفاده از کلاس Abstract، مطمئن می‌شی که هر کلاسی که ازش ارث‌بری می‌کنه، حتماً یه سری متدهای مشخص رو داشته باشه. در این مرحله سعی کنید قانون کلاس abstract رو یاد بگیرید. در آینده با یادگیری design patternها اینکه چطور از این کلاس استفاده کنید مشخص خواهد شد. براساس انتخاب یک الگوی طراحی متوجه خواهید شد به چه شکلی عمل کنید.

محسن موحد ۲۱ مرداد ۱۴۰۳، ۰۸:۱۸