2013-03-18 4 views
6

अगर मुझे क्लोनेबल क्लास चाहिए तो मुझे क्लोन ओवरराइड क्यों करना चाहिए? सभी वर्ग Object से फैले हुए हैं, तो मुझे ऑब्जेक्ट क्लोन विधि को ओवरराइड क्यों करना चाहिए? मैं सिर्फ मूल ऑब्जेक्ट क्लोन विधि का आह्वान क्यों नहीं कर सकता?अगर मुझे क्लोनेबल क्लास चाहिए तो मुझे क्लोन ओवरराइड क्यों करना चाहिए?

+0

साथ ही आप इस उत्तर चेकआउट करने के लिए चाहते हो सकता है: http://stackoverflow.com/questions/3652748/cloning-objects-in-java- 3-प्रश्न/3652767 # 3652767 – nkr

+0

आप हमेशा अपनी कक्षा में एक कॉपी विधि लिख सकते हैं। आपको कुछ भी ओवरराइड करने की ज़रूरत नहीं है। –

उत्तर

8

यह जेडीके में कई "डिज़ाइन त्रुटियों" में से एक है।

Clonable एक clone() विधि के साथ एक अंतरफलक किया गया जाना चाहिए था, लेकिन इसके बजाय यह एक marker interface और Objectclone() विधि का एक "कुछ भी नहीं" कार्यान्वयन है है ... और आप अपने प्रश्न के साथ छोड़ दिया जाता है।


यदि आप रुचि रखते हैं, this answer जावा में कुछ अन्य "गलतियों" को सूचीबद्ध करता है।

1

यहाँ देखें: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html

एक उदाहरण को लागू नहीं है कि अपवाद CloneNotSupportedException में Cloneable इंटरफ़ेस परिणाम फेंके जाने पर वस्तु का क्लोन विधि लागू।

इसके अलावा मुझे लगता है कि इस चर्चा के लिए मददगार होगा: Confusion about cloneable interface and object.clone() in java

संबंधित मुद्दे