🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ آیتان اعلم
عدم امکان محدودترکردن سطح دسترسی در child class،چرا؟
افسانه نواب حل شده توسط افسانه نواب

سلام و درود، وقتتون بخیر

ببخشید درمورد child class سوال داشتم که چرا اگر access modifier یک property رو داخل class پدر به صورت public تعریف کنیم، بعدا نمیتونیم وقتی داخل child class که براش مقدار جدید مشخص میکنیم، به صورت private یا protected قرارش بدیم؟؟

چون ما وقتی داریم مجدد تعریف میکنیم، یعنی کاری به اون اصلیه نداریم و مقدار رو از اون جدیده میخونیم، پس باید دستمون تو تعیین سطح دسترسی باز باشه در صورتیکه که نیست!

سلام و احترام

class Base
{
    protected function foo() {}
}
class Derived extends Base
{
    public function foo() { return parent::foo(); }
}

توی مثال بالا همونطور که مشاهده میشه شما راحت میتونی تابع رو از protected توی کلاس فرزند به public تغییر بدید تا برعکس اما برای private شما اصلا دسترسی ندارید که بخواید تغییرش بدید اما میتونید یک پراپتری یا تابع هم نام private تعریف کنید

 

بهترین پاسخ
افسانه نواب ۲۹ فروردین ۱۴۰۰، ۱۷:۰۰