जावा 8 इंटरफेस में डिफ़ॉल्ट विधि कार्यान्वयन की एक नई अवधारणा पेश करता है। इस क्षमता को पश्चगामी संगतता के लिए जोड़ा जाता है ताकि पुराने इंटरफेस का उपयोग जावा 8 की लैम्ब्डा अभिव्यक्ति क्षमता का लाभ उठाने के लिए किया जा सके।
उदाहरण के लिए, 'सूची' या 'संग्रह' इंटरफेस में 'प्रत्येक के लिए' विधि घोषणा नहीं है। इस प्रकार, इस तरह की विधि जोड़ने से संग्रह ढांचे के कार्यान्वयन को आसानी से तोड़ दिया जाएगा। जावा 8 डिफ़ॉल्ट विधि का परिचय देता है ताकि सूची/संग्रह इंटरफ़ेस में प्रत्येक विधि के लिए डिफ़ॉल्ट कार्यान्वयन हो, और इन इंटरफेस को लागू करने वाले वर्ग को इसे लागू करने की आवश्यकता नहीं है।
उदाहरण
public class Java8Tester { public static void main(String args[]) { Vehicle vehicle = new Car(); vehicle.print(); } } interface Vehicle { default void print() { System.out.println("I am a vehicle!"); } static void blowHorn() { System.out.println("Blowing horn!!!"); } } interface FourWheeler { default void print() { System.out.println("I am a four wheeler!"); } } class Car implements Vehicle, FourWheeler { public void print() { Vehicle.super.print(); FourWheeler.super.print(); Vehicle.blowHorn(); System.out.println("I am a car!"); } }
आउटपुट
I am a vehicle! I am a four wheeler! Blowing horn!!! I am a car!