उदाहरण
interface MyInt{
public abstract void multiplyVals(int a, int b);
public default void addVals(int a, int b){
subVals(a, b);
System.out.print("डिफ़ॉल्ट मेथड परिणाम ");
System.out.println(a + b);
}
private void subVals(int a, int b){
System.out.print("प्राइवेट मेथड परिणाम ");
System.out.println(a - b);
}
private static void div(int a, int b){
System.out.print(" प्राइवेट स्टेटिक मेथड परिणाम ");
System.out.println(a / b);
}
}
public class MyNewInt implements MyInt{
@Override
public void multiplyVals(int a, int b){
System.out.print("एब्सट्रैक्ट मेथड परिणाम ");
System.out.println(a * b);
}
public static void main(String[] args){
MyInt in = new MyNewInt();
in.multiplyVals(11, 34);
in.addVals(78, 0);
}
}आउटपुट
एब्सट्रैक्ट मेथड परिणाम 374
प्राइवेट मेथड परिणाम 78
डिफ़ॉल्ट मेथड परिणाम 78'MyInt' नाम का एक इंटरफेस परिभाषित किया गया है, जिसमें एक एब्सट्रैक्ट फ़ंक्शन होता है, बिना बॉडी के। एक अन्य डिफ़ॉल्ट फ़ंक्शन परिभाषित किया गया है, जो मूल रूप से दो संख्याओं को जोड़ता है। 'subVals' नाम का एक अन्य फ़ंक्शन परिभाषित किया गया है, जो दो संख्याओं को घटाता है।
'div' नाम का एक अन्य स्टेटिक फ़ंक्शन परिभाषित किया गया है जो दो मानों को विभाजित करता है। 'MyNewInt' नाम की एक क्लास पहले से परिभाषित इंटरफेस को इम्प्लीमेंट करती है। यह मानों को गुणा करने वाले फ़ंक्शन को ओवरराइड करती है और इसे पुनर्परिभाषित करती है। मुख्य फ़ंक्शन में, इंटरफेस का एक इंस्टेंस बनाया जाता है, और विशिष्ट मानों को पास करके 'multiplyVals' फ़ंक्शन को कॉल किया जाता है। इसी तरह, विशिष्ट मानों को पास करके 'addVals' फ़ंक्शन को भी कॉल किया जाता है। संबंधित आउटपुट कंसोल पर प्रदर्शित होता है।