जावा में स्टेटिक विधियों को अतिभारित किया जा सकता है। लेकिन एक शर्त है कि दो विधियों को ओवरलोड नहीं किया जा सकता है I वे केवल 'स्थैतिक' कीवर्ड के कारण भिन्न हैं।
आइए एक उदाहरण देखें -
उदाहरण
public class Demo{ public static void test(){ System.out.println("Demo class test function has been called"); } public static void test(int val){ System.out.println("Demo class test function with parameter has been called"); } public static void main(String args[]){ System.out.println("In the main class, Demo functions being called"); Demo.test(); Demo.test(57); } }
आउटपुट
In the main class, Demo functions being called Demo class test function has been called Demo class test function with parameter has been called
डेमो नामक एक वर्ग में 'टेस्ट' नाम का एक फंक्शन होता है जो एक विशिष्ट संदेश को प्रिंट करता है। यह एक पैरामीटर के रूप में पूर्णांक मान के साथ 'परीक्षण' नामक एक अन्य फ़ंक्शन को भी परिभाषित करता है। प्रासंगिक संदेश फ़ंक्शन बॉडी के अंदर दिखाया गया है। मुख्य फ़ंक्शन में, परीक्षण फ़ंक्शन को पैरामीटर के बिना और पूर्णांक पैरामीटर के साथ कहा जाता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है।
जावा में स्टेटिक विधियों को ओवरराइड नहीं किया जा सकता है। समान हस्ताक्षर वाले स्थैतिक तरीकों को उप-वर्ग में परिभाषित किया जा सकता है, लेकिन यह रनटाइम बहुरूपता नहीं होगा। इसलिए, ओवरराइडिंग संभव नहीं है। यहाँ एक उदाहरण है -
उदाहरण
class base_class{ public static void show(){ System.out.println("Static or class method from the base class"); } public void print_it(){ System.out.println("Non-static or an instance method from the base class"); } } class derived_class extends base_class{ public static void show(){ System.out.println("Static or class method from the derived class"); } public void print_it(){ System.out.println("Non-static or an instance method from the derived class"); } } public class Demo{ public static void main(String args[]){ base_class my_instance = new derived_class(); System.out.println("Base class instance created."); my_instance.show(); System.out.println("Function show called"); my_instance.print_it(); System.out.println("Function print_it called"); } }
आउटपुट
Base class instance created. Static or class method from the base class Function show called Non-static or an instance method from the derived class Function print_it called
बेस क्लास में 'शो' नाम का एक स्टैटिक फंक्शन होता है जो एक मैसेज को प्रिंट करता है। इसी तरह, 'print_it' नाम का एक अन्य फ़ंक्शन एक संदेश प्रदर्शित करता है। एक वर्ग बेस क्लास से लिया गया है जो दो कार्यों को प्राप्त करता है। डेमो नामक एक वर्ग में मुख्य कार्य होता है जो बेस क्लास का एक उदाहरण बनाता है जो व्युत्पन्न प्रकार वर्ग का होता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होते हैं।