प्रभावी जावा 2 संस्करण, मद 17 से:विरासत की योजना बनाते समय, क्या रचनाकारों को अतिरंजित विधि कॉल करने की अनुमति है?
प्रत्येक सार्वजनिक या संरक्षित विधि या निर्माता के लिए, दस्तावेज़ीकरण संकेत देना चाहिए जो overridable तरीकों विधि या निर्माता invokes ही में
बाद में आइटम यह कहता है:
रचनाकारों को प्रत्यक्ष या परोक्ष रूप से ओवरराइड करने योग्य तरीकों का आह्वान नहीं करना चाहिए।
क्या ये दो बयान विरोधाभासी नहीं हैं, या क्या मुझे कुछ याद आ रहा है?
आप इसे एक ऐसे अर्थ में पढ़ सकते हैं जो गैर-विरोधाभासी है: यह वैक्यूओसली सच हो सकता है कि एक कन्स्ट्रक्टर का दस्तावेज सभी ओवरराइड करने योग्य तरीकों को इंगित करता है, अगर शून्य अतिरंजित तरीकों का आह्वान किया जाता है। लेकिन मुझे संदेह है कि यह वह भावना नहीं है जिसमें लिखा गया था, न ही वह जिसका अर्थ है :) –
वास्तव में, आपको दस्तावेज करना चाहिए कि आप कौन से अतिव्यापी सदस्यों को आमंत्रित करते हैं, सिर्फ इसलिए कोई उन्हें ओवरराइड कर सकता है, और बाद में नहीं कह सकता > "अरे, लेकिन आपने मुझे कभी ओवरराइड करने के बारे में सूचित नहीं किया था या उसमें > कोई साइड इफेक्ट्स नहीं होगा" उस तरफ, लोग हमेशा अपने (ओवर्रिडेन) कक्षाओं में विधियों को बदल रहे होंगे, जो आपके कोड को तोड़ सकता है, इसलिए यह यह करने के लिए सबसे अच्छा कभी नहीं है। – Stultuske