+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 پاسخ 505 بازدید
+1 امتیاز
1 پاسخ 394 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
0 امتیاز
1 پاسخ 396 بازدید
0 امتیاز
1 پاسخ 316 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 482 بازدید
0 امتیاز
1 پاسخ 385 بازدید
+1 امتیاز
2 پاسخ 500 بازدید
...