जावा में आप एक अमूर्त वर्ग में एक स्थिर विधि हो सकता है
Foo.bar();
हालांकि, इसी कारण से, आप अमूर्त होने के लिए एक स्थिर विधि घोषित नहीं कर सकते हैं। आम तौर पर, संकलक गारंटी दे सकता है कि किसी भी अमूर्त विधि के पास वास्तविक कार्यान्वयन होगा जब भी इसे कहा जाता है, क्योंकि आप एक अमूर्त वर्ग का उदाहरण नहीं बना सकते हैं। लेकिन चूंकि एक स्थिर विधि को सीधे कहा जा सकता है, इसे अमूर्त बनाने से यह एक अपरिभाषित विधि को कॉल करना संभव हो जाएगा।
abstract class Foo {
abstract static void bar();
}
// Calling a method with no body!
Foo.bar();
एक इंटरफ़ेस में, सभी विधियां implicitly abstract हैं। यही कारण है कि एक इंटरफ़ेस एक स्थिर विधि घोषित नहीं कर सकता है। (कोई वास्तु कारण है कि एक अंतरफलक एक स्थिर विधि नहीं सकता है, लेकिन मैं JLS के लेखकों का मानना था कि कि इंटरफेस के दुरुपयोग को प्रोत्साहित करेगा संदेह है)
स्रोत
2013-07-01 14:54:40
नोट: जावा 8 के रूप में, आप इंटरफ़ेस में स्थिर और डिफ़ॉल्ट विधियों की घोषणा कर सकते हैं – user2243357