بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

دلیل عدم نمایش متدهای سوپر کلاس در ساب کلاس چیست؟

مدیریت گفتگو
سارا 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام خدمت دوستان عزیز و تبریک سال نو

من یه پروژه ایجاد کردم که توی اون وقتی یه ساب کلاس تعریف کردم لیست متدهای کلاس بالایی با زدن ctrl+space به من نمایش داده نمیشه . و نمیتونم ببینم که کلاس بالایی چه متدهایی داره تا ازشون استفاده کنم و ارث بری داشته باشم.

حتی وقتی که نام متد رو دستی وارد میکنم اون متد رو یه متد جدید در نظر میگیره و میخواد که بهش بادی و متن بدم.

میتونید بگید مشکل از کجاست؟

نظرات

مسعود فرمانی 10 سال پیش
متدها و فیلد های private کلاس سوپر به کلاس پایه ارث نمیرسه..این نکته رو محض یادآوری گفتم..موفق باشید

پاسخ‌ها 4

سارا 10 سال پیش

جوابشو گیر آوردم اگه خواستید استفاده کنید

Windows > Preferences > Java > Editor > Content Assist > Advanced > Restore Default

نظرات

سارا 10 سال پیش

حالا فیلد هامو نمیبینه

ممنونم از یاد آوریتون ولی حتی public ها رو هم نمیبینه

نظرات

مسعود فرمانی 10 سال پیش

اگه فیلدها و متدهاتون رو private تعریف نکنید قطعا توی کلاس پایه میتونید استفاده شون کنید
فقط یه نکته راجبه فیلدها هست و اونم اینه که شما مثلا اگه توی کلاس سوپر نوشته باشید 

class ClassOne{
public int testNumberOne;
}

توی کلاس پایه نمیتونید این فیلد رو تغییر مقدار بدید یعنی مثلا نمیتونید توی کلاس پایه بنویسید  testNumberOne = 45; ولی میتونید فیلدی از همون نوع تعریف کنید و مقدار فیلد کلاس سوپر رو در اون واریز کنید..مثلا میتونید در کلاس پایه بنویسید :

 class ClassTwo extends ClassOne{
public int testNumberTwo = testNumberOne;
}

نظرات

سارا 10 سال پیش

حتی با رعایت public و private حتی برای اولین بار که بتونم فیلدهامو ببینم با زدن ctrl+space به من نمایش داده نمیشه . و نمیتونم ببینم که کلاس بالایی چه فیلدهایی داره  متد هامو تونستم ببینم با روشی که بالا نوشتم پیدا کردم.

اگه میتونید راهنمایی کنید ممنون میشم

نظرات

Criss 10 سال پیش
شما باید یک new از اون کلاس بسازید < حالا متغیر شما از جنس اون کلاس هست < میتونید "." بزارید و مقادیر موجود رو استفاده کنید
Reza 10 سال پیش
سلام ، فکر کنم شما داخل کلاس Ctrl + Space میزنید . برای اینکه در subClass فیلدهای superClass رو ببینید باید در یکی از متدهای subClass باشید وگرنه خارج از متد و در سطح کلاس فیلدها رو نمی بینید . البته متد های superClass رو در هر حالت نشون میده به شرطی که private نباشه .
سارا 10 سال پیش
خیلی ممنونم بابت راهنماییتون فکر کنم درست میفرمایید من اشتباهی داخل کلاس Ctrl + Space میزدم .

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .