जावा 8 से स्थिर तरीके क्यों समर्थित हैं? नीचे कोड में मुख्य विधि में दो लाइनों के बीच क्या अंतर है?जावा 8 से इंटरफ़ेस में एक स्थिर विधि का उद्देश्य क्या है?
package sample;
public class A {
public static void doSomething()
{
System.out.println("Make A do something!");
}
}
public interface I {
public static void doSomething()
{
System.out.println("Make I do something!");
}
}
public class B {
public static void main(String[] args) {
A.doSomething(); //difference between this
I.doSomething(); //and this
}
}
हम ऊपर देख सकते हैं, मैं भी बी में लागू नहीं है क्या उद्देश्य यह है जब हम एक और कक्षा में एक ही स्थिर विधि लिख सकते हैं और यह कॉल कर सकते हैं एक अंतरफलक में एक स्थिर विधि के लिए काम करेगा? क्या यह मॉड्यूलरिटी की तुलना में किसी अन्य उद्देश्य के लिए पेश किया गया था। और मॉड्यूलरिटी द्वारा, मेरा मतलब है:
public interface Singable {
public void sing();
public static String getDefaultScale()
{
return "A minor";
}
}
बस एक साथ तरीकों को रखने के लिए।
इसे समझाना चाहिए: https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html – Marvin
कोई फर्क नहीं पड़ता। – Professor901
स्टेटिक विधियां डिफ़ॉल्ट विधियां प्रदान करती हैं जो कक्षाओं को लागू करने के लिए ओवरराइड नहीं करती हैं। यह विशेष रूप से उपयोगी है अगर विधि कार्यान्वयन सभी कार्यान्वयन में दोहराया गया है। आपका उदाहरण उपयोगी है, कक्षाओं पॉपसॉन्ग और रॉकसॉन्ग इसे लागू कर सकते हैं और दोनों को नाबालिग के रूप में डिफ़ॉल्ट पैमाने होगा। –