निम्नलिखित नियम हैं जिन पर हमें किसी विधि को ठीक से ओवरराइड करते समय विचार करना चाहिए -
- तर्क सूची बिल्कुल ओवरराइड विधि के समान होनी चाहिए।
- रिटर्न प्रकार वही होना चाहिए या सुपरक्लास में मूल ओवरराइड विधि में घोषित रिटर्न प्रकार का उप-प्रकार होना चाहिए।
- पहुंच स्तर ओवरराइड विधि के पहुंच स्तर से अधिक प्रतिबंधात्मक नहीं हो सकता है। उदाहरण के लिए:यदि सुपरक्लास विधि को सार्वजनिक घोषित किया जाता है तो उपवर्ग में ओवरराइडिंग विधि निजी या संरक्षित नहीं हो सकती है।
- इंस्टेंस विधियों को केवल तभी ओवरराइड किया जा सकता है जब वे उपवर्ग द्वारा विरासत में मिले हों।
- एक अंतिम घोषित विधि को ओवरराइड नहीं किया जा सकता है।
- स्थिर घोषित विधि को ओवरराइड नहीं किया जा सकता है, लेकिन इसे फिर से घोषित किया जा सकता है।
- यदि कोई विधि इनहेरिट नहीं की जा सकती, तो उसे ओवरराइड नहीं किया जा सकता।
- इंस्टेंस के सुपरक्लास के समान पैकेज के भीतर एक उपवर्ग किसी भी सुपरक्लास विधि को ओवरराइड कर सकता है जिसे निजी या अंतिम घोषित नहीं किया गया है।
- एक अलग पैकेज में एक उपवर्ग केवल सार्वजनिक या संरक्षित घोषित गैर-अंतिम विधियों को ओवरराइड कर सकता है।
- एक ओवरराइडिंग विधि किसी भी अनचेक अपवाद को फेंक सकती है, भले ही ओवरराइड विधि अपवादों को फेंके या नहीं। हालांकि, ओवरराइडिंग विधि को चेक किए गए अपवादों को नहीं फेंकना चाहिए जो ओवरराइड विधि द्वारा घोषित किए गए अपवादों की तुलना में नए या व्यापक हैं। ओवरराइड करने की विधि, ओवरराइड की गई विधि की तुलना में संकरे या कम अपवादों को फेंक सकती है।
- कंस्ट्रक्टर्स को ओवरराइड नहीं किया जा सकता है।