+1 امتیاز
قبل در برنامه نویسی توسط (204 امتیاز)
ویرایش شده قبل توسط
چرا Collection دو اینترفیس Cloneable و Serializable را extends نمی کند؟

1 پاسخ

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

اینترفیس Collection پدر تمام کلاس های Java Collection Framework است و از طرف دیگر تمام فرزندان کلاس Collection اینترفیس های Cloneable و Serializable را پیاده سازی کرده اند در حالی که اینترفیس Collection این دو اینترفیس را extends نمی کند. این موضوع یک دلیل طراحی دارد و به عمد اینترفیس Collection این دو اینترفیس را extends نمی کند. بدلیل اینکه بعضی از Collection ها ممکن حاوی اطلاعات زیادی در سطح ترابایت باشند و عملا clone کردن یا serialize کردن آنها کاری بسیار هزینه بر است و معمولا اتفاق نمی افتد و چون طبق قانون polymorphism درون یک متغییر از جنس Collection می تواند شئ از جنس هر کدام از کلاس های فرزند دخیره کرد، ممکن است با فراخوانی متد Cloneable یا Serializable اتفاق های پر هزینه ای بیوفتد و برای جلوگیری از این کار اینترفیس Collection این دو اینترفیس را extends نمی کند.

سوالات مشابه

0 امتیاز
1 پاسخ 638 بازدید
+1 امتیاز
1 پاسخ 537 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
0 امتیاز
1 پاسخ 511 بازدید
0 امتیاز
1 پاسخ 367 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
1 پاسخ 1.7هزار بازدید
0 امتیاز
1 پاسخ 619 بازدید
0 امتیاز
1 پاسخ 615 بازدید
+1 امتیاز
2 پاسخ 714 بازدید
...