Java 8 的 default、defender 還是 extension 方法是什麼?
Java 8 引入了介面中預設方法實現的新概念。此功能是為了向後相容而新增的,這樣舊介面便可以用於使用 Java 8 的 lambda 表示式功能。
例如,“List”或“Collection”介面沒有“foreach”方法宣告。因此,新增這樣的方法只會破壞集合框架的實現。Java 8 引入了預設方法,透過該方法 List/Collection 介面可以有 foreach 方法的預設實現,並且實現這些介面的類無需實現它。
語法
public interface vehicle {
default void print() {
System.out.println("I am a vehicle!");
}
}
示例
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!
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP