🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ امیر ابوئی
عدم امکان محدودترکردن سطح دسترسی در 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 تعریف کنید

 

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