मैं वर्तमान में जोशुआ ब्लोच द्वारा प्रभावी जावा पढ़ रहा हूं और आइटम 17 'विरासत के लिए डिज़ाइन और दस्तावेज़ है या अन्यथा इसे प्रतिबंधित करता है'। लेखक डिफ़ॉल्ट रूप से विरासत को प्रतिबंधित करने का सुझाव देते हैं।कक्षा परिभाषा ब्रेक से पीछे संगतता से अंतिम को हटा सकते हैं?
डिफ़ॉल्ट रूप से कक्षाएं अंतिम घोषित करना सुरक्षित है और बाद में रिलीज में कक्षा का विस्तार करने की आवश्यकता होने पर अंतिम कीवर्ड को हटा दें? क्या यह पिछले संस्करण के साथ संकलित कोड के खिलाफ पिछड़ा संगतता तोड़ देगा?
यदि ऐसा लगता है कि यह सभी वर्गों को अंतिम बनाने के लिए एक सुरक्षित शर्त है और केवल एक अच्छी तरह से समर्थित मांग होने पर इसे भविष्य में रिलीज में हटा दें।
यह कुछ हद तक निर्भर करता है कि आपके पास कितनी जीवित, सांस लेने वाली एपीआई है। यदि आप हर समय परिवर्तन और रिलीज करते हैं, तो उत्तराधिकारी की क्षमता प्राप्त करने के लिए एक सप्ताह तक प्रतीक्षा करना इतना बुरा नहीं है। यदि, दूसरी तरफ, जावा ने डिफ़ॉल्ट रूप से अपने मूल जेडीके कक्षाओं के साथ ऐसा किया, तो यह "फिक्स" के लिए 5 साल तक इंतजार करने के लिए प्रोग्रामर को आँसू के लिए लाएगा। –
@ किर्क वोल अगर अंतिम से गैर-फाइनल में बदलने में 5 साल लगते हैं, तो गैर-फाइनल से फाइनल में कितना समय लगेगा? – emory