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

ارث بری از دو کلاس؟

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

من میخوام ارث بری زیر رو پیاده سازی کنم:

Class myClass extends TabActivity , BroadcastReceiver { }

در واقع میخوام از متد onReceive  کلاس BroadcastReceiver استفاده کنم که تا wifi روشن شد اطلاعات رو از سرور بگیره

اما همون طور که میدونید در جاوا تنها یک کلاس میتونه به ارث برده بشه

چی کار کنم؟

نظرات

احمد اسدی 11 سال پیش
میتونی MyClass رو از TabActivity میراث بری کنی، و TabActivity رو از BroadcastReceiver . به همین راحتی :)
AhmadVB 11 سال پیش
من با Interfaace ها هنوز کار نکردم. ویدئوی سوم از بخش هفتم آیا راه حل این سوال هست ؟
کاشی زاده 11 سال پیش
طبیعتا extends از دو کلاس معنی نداره مثل اینکه بگید بچه ای 2 پدر داره :|
ATRAS 11 سال پیش
دوست عزیز اتفاقا خیلی معنی داره.من خودم به شخصه در یکی از پروژه هام اگر این قابلیت ارث بری از چند کلاس نبود پروژه با شکست مواجه میشد.این ارث بری به این معنا نیست که یک بچه دو پدر داره بلکه به این معنی است که یک پسر از پدرش ارث میبرد و میتواند از پدر پدرش نیز ارث ببرد.این نیز درواقعیت هم صدق میکنه یک شخص ممکنه اخلاق و رفتارش شبیه به اشخاص دیگر باشد که این یعنی یک نفر از چند نفر ارث بری کرده.
کاشی زاده 11 سال پیش
مشخصه آموزش های استاد رو خوب گوش نکرده اید کلاس پسر از پدر خود ارث بری میکند و کلاس پدر از کلاس پدر بزرگ ارث میبرد پس کلاس پدر شامل خاصیت های پدر بزرگ هست و پسر میتواند از پدر خود خاصیت ها رو به ارث ببرد ولی به اینگونه نیست که مستقیم خودش از پدر بزرگش ارث بری کند
ATRAS 11 سال پیش
بله مشخصه که نمیتونه مستقیما از پدر بزرگش مستقیم ارث بری کند.من هم در متن بالا همینو بیان کردم.ولی انگار جفتمون دچار سوء تفاهم شدیم و منظور هم دیگرو قشنگ نفهمیدیم:) حق با شماست.

پاسخ‌ها 4

Hossein Kurd 11 سال پیش

چیزی که شایع هست اینه که کلاس اول ساخته بشه و کلاس دوم از کلاس اول و کلاس سوم هم از کلاس دوم ارث بری کنه

 Class1 >> Class2 >> Class3|

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

نظرات

ahmad_r 11 سال پیش
ممنون ولی نحوه پیاده سازیش رو متوجه نشدم
ATRAS 11 سال پیش

دوست عزیز منظورشون اینه که.شما این کارو کنین.

  Class myClass extends TabActivity

Class TabActivity extends BroadcastReceiver

که در این صورت myclass هم از TabActivity  میراث بری میکنه هم از BroadcastReceiver.

نظرات

ahmad_r 11 سال پیش

اگه درست متوجه شده باشم منظورتون اینکه از inner clas استفاده کنم

من به شکل زیر پیاده سازی کردم ولی هنوز به جواب نرسیدم،  یعنی متد onReceive اجرا نمیشه ولی onCreate اجرا میشه

مگر برای چک کردن روشن شدن wifi نباید از broadcast استفاده بشه. مشکل کجاست؟

class  myClass extends  TabActivity 
{

class TabActivity extends BroadcastReceiver
{
@Override
public void onReceive(Context arg0, Intent arg1) { // مربوط به کلاس برودکست
...
}
}
@Override
public void onCreate(Bundle savedInstanceState) { // مربوط به کلاس تب اکتیویتی
...
}
}

نظرات

AhmadVB 11 سال پیش
برای extend کردن نباید کلاس ها داخل هم نوشته بشوند. برای هر کدام باید یک فایل Java جدا بسازید.
احمد اسدی 11 سال پیش

به این شکل عمل کنید:

  • کلاس myClass که از کلاس TabActivity میراث بری شده :
 class  myClass extends  TabActivity {
       
       @Override
       public void onCreate(Bundle savedInstanceState)   {   // مربوط به کلاس تب اکتیویتی
             ...
       }
}
  • کلاس TabActivity که از کلاس BroadcastReceiver میراث بری شده:
 class  TabActivity  extends BroadcastReceiver {
        
@Override public void onReceive(Context arg0, Intent arg1) { // مربوط به کلاس برودکست ... } }

 این دو کلاس رو باید داخل دو فایل جاوا بصورت مجزا قرار بدی 

نظرات

ahmad_r 11 سال پیش
فکر نمیکردم بشه کلاسی به اسم کلاس های خود جاوا ایجاد کرد و از کلاس دیگه هم ارث ببره (class TabActivity extends BroadcastReceiver) ممنون

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