+2 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

در زبان برنامه نویسی جاوا برای رفع محدودیت نبودن قابلیت وراثت چند گانه قابلیتی به نام Interface وجود دارد که خیلی شبیه قابلیت Trait در زبانهایی مثل PHP و Scala است. تفاوت Trait و Interface چیست؟

2 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)
ویرایش شده قبل توسط

تعریف استاندارد و مشخصی از Trait وجود ندارد و هر زبان برنامه نویسی یکجور آن را پیاده کرده است و بهتر است برای مقایسه Trait، پیاده سازی یک زبان برنامه نویسی از Trait در نظر گرفته شود و با آن مقایسه شود.

برای مثال در اسکالا Trait ها stateful هستند ولی اما اینترفیس بهمراه default method در جاوا stateless است و یا اینکه در اسکالا Trait از وراثت چندگانه خطی (linearization) پشتیبانی می کند ولی در اینترفیس های بهمراه default method در جاوا این امکان وجود ندارد.

شباهتی که بین Trait در اسکالا با اینترفیس در جاوا وجود دارد این است که هر دو می توانند هم متدهایی داشته باشند که پیاده سازی دارد و هم متد های abstract داسته باشند و همچنین هر دو نمی توانند constructor داشته باشند و به طبع آن نمی توان از آنها شئ ساخت.

+2 امتیاز
قبل توسط (42 امتیاز)
از نگاهی دبگر: کلاسی است که پارامتر کانستراکتور ندارد. (حداقل در scala)

سوالات مشابه

0 امتیاز
2 پاسخ 587 بازدید
0 امتیاز
0 پاسخ 787 بازدید
0 امتیاز
0 پاسخ 515 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+3 امتیاز
1 پاسخ 964 بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 833 بازدید
...