0 امتیاز
قبل در برنامه نویسی توسط (0 امتیاز)
ویرایش شده قبل توسط
فکر کنید ما یه کلاس abstract داریم و دو تا تابع داره که هر دوشونم abstract هستن. چه دلیلی داره من نیام به جای اینکه کلاس رو abstract بزارم بیام اون رو اینترفیس کنم؟

از لحاظ سینتکسی اوکیم از لحاظ مفهومی میگم؟

1 پاسخ

0 امتیاز
قبل توسط (30 امتیاز)
ببین احتمالا با مفهوم مفهوم abstraction آشنایی داری.وقتی ما از abstract استفاده میکنیم میتونیم از 0 تا 100 درصد مفهوم abstraction ر. پیاده سازی کنیم.
حالا وقتی از intrface  استفاده میکنیم باید بصورت 100درصد مفهوم abstraction رو پیاده سازی کنیم.

کلاس abstract میتونه interface رو داخل خودش پیاده سازی کنه ولی برعکسش نه و ... خیلی تفاوت های دیگه
 

مزیت abstract  اینه که داخل بدنه ی خودش میتونه چندین متد abstract و غیر abstract داشته باشه.

کلاس abstract میتونه متغیرهای final، غیر final و قابل ویرایش، static  و غیر static در بدنه خودش داشته باشه اما Interface فقط متغیرهای static و final .

و اما سوال تو:
ببین اینا  تفاوت هایی هستش که وجود داره  و اگه قرار نیست اینترفیسی پیاده سازی بشه یا متغیر غیر static و غیر final وچود نداشته باشه میتونی از اینترفیس استفاده کنی و هیچ تفاوتی نداره(کما اینکه مبحث ارث بریشون هم متفاوته یکمی)

سوالات مشابه

0 امتیاز
0 پاسخ 682 بازدید
+1 امتیاز
5 پاسخ 7.6هزار بازدید
+1 امتیاز
1 پاسخ 3.6هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط mp (7.0هزار امتیاز)
0 امتیاز
1 پاسخ 391 بازدید
+1 امتیاز
0 پاسخ 795 بازدید
0 امتیاز
1 پاسخ 776 بازدید
0 امتیاز
0 پاسخ 355 بازدید
+1 امتیاز
1 پاسخ 894 بازدید
...