متد Oncreate مربوط به کلاس اپلیکیشن
سلام
یه سوال .متد Oncreate مگر مربوط به چرخه حیات اکتیویتی ها نمیشه.پس چرا ما توی کلاس اپلیکیشن متد Oncreate رو Override می کنیم؟کلاس اپلیکیشن که اکتیویتی نیست.

سلام.
کلاس های مختلف گاها میتونن متدهای هم نام داشته باشن، پس اینکه بگیم متدی با نام oncreate فقط میتونه در کلاس Activity باشه، و چرا توی کلاس Application هم هست درست نیست. این اصل کپسوله سازی اشیاء در شی گرایی هست که به ما اجازه میده متدهای هم نام در کلاس های مختلف داشته باشیم و اشیاء هر کلاس بتونن از متد مربوط به کلاس خودشون استفاده کنند. مثلا فرض کنید یک کلاس دارید به نام "لباس" و یک کلاس دارید به نام "کفش" ، و در هر دو این کلاس ها متدی به نام "پوشیدن" دارید که هر کدوم نحوه پوشیدن خودشون رو دارند و این در بدنه متد آورده شده. یعنی نحوه پوشیدن لباس با نحوه پوشیدن کفش تفاوت دارن. حالا فرض کنید شیئی مثل "کتونی" رو از کلاس کفش ایجاد میکنید و میخواین متد "پوشیدن" رو برای اون فراخوانی کنید، در اینجا شیء کتونی میدونه که از جنس کلاس "کفش" هست و باید از متد "پوشیدن" کلاس خودش استفاده کنه. حالا اگر شیئی مثل "بلوز" رو از روی کلاس "لباس" ایجاد کنید باز به همین ترتیب؛ و هیچ کدوم سراغ متد "پوشیدن" اون یکی کلاس نمیرن، چون اصلا چنین دسترسی و اجازه ای ندارن، مگر تحت شرایط خاص که خود برنامه نویس براشون تعریف کنه.پس در مورد سوال شما هم کلاس Application متد oncreate خودش رو داره و کلاس Activity هم متد oncreate مربوط به خودش رو :-))
در مورد override کردن هم میدونیم که اگر کلاسی از کلاس دیگه ارث بری کرده باشه یکی از مواردی که از کلاس پدر به ارث میبره متدهاش هست.حالا اگر شما بخواین توی کلاس فرزند تغییری توی متدمون که از پدر به ارث برده شده بدیم، اونو بازنویسی میکنیم و قسمت های جدیدی که میخوایم رو بهش اضافه میکنیم، یعنی همون override کردن.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .