+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 پاسخ 505 بازدید
0 امتیاز
0 پاسخ 683 بازدید
0 امتیاز
0 پاسخ 361 بازدید
+1 امتیاز
1 پاسخ 901 بازدید
+3 امتیاز
1 پاسخ 844 بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
1 پاسخ 716 بازدید
...