Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมธอด default ในอินเทอร์เฟซ Java 8

Java 8 นำเสนอแนวคิดใหม่ของการนำเมธอด default ไปใช้งานในอินเทอร์เฟซ ความสามารถนี้ถูกเพิ่มเข้ามาเพื่อความเข้ากันได้กับรุ่นก่อน (backward compatibility) เพื่อให้อินเทอร์เฟซเก่าๆ สามารถใช้ประโยชน์จากความสามารถ lambda expression ของ Java 8 ได้

ตัวอย่างเช่น อินเทอร์เฟซ ‘List’ หรือ ‘Collection’ ไม่มีการประกาศเมธอด ‘forEach’ การเพิ่มเมธอดแบบนี้จะทำลายการนำไปใช้งานของ collection framework ทั้งหมด Java 8 นำเมธอด default มา เพื่อให้ List/Collection interface สามารถมีการนำไปใช้งาน default ของ forEach method และคลาสที่นำอินเทอร์เฟซเหล่านี้มาใช้งาน ไม่จำเป็นต้องนำเมธอดเดียวกันไปใช้งานอีก

ตัวอย่าง

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!