Java8特性之介面default和static方法
阿新 • • 發佈:2021-02-19
- Java8之前,在編寫一個介面時,介面中只定義方法,不能有方法體,方法的實現全部交由實現類去完成。
例如:
public interface Car {
void painting();
}
public class AudiCar implements Car {
@Override
public void painting() {
System.out.println("奧迪噴漆");
}
}
public class BMWCar implements Car {
@Override
public void painting() {
System.out.println("寶馬噴漆");
}
}
- 如果在介面中新增一個方法,所有的實現類都需要實現這個方法。
如果不希望所有的實現類都實現新增的方法,可以使用Java8新特性中的
default和static方法修飾符。
例如:
public interface Car {
void painting();
default void driver() {
System.out.println("開車");
}
static void fix() {
System.out.println("修理車輛");
}
}
介面Car中新增的driver、fix方法不需要在介面中去實現,使用方法如下:
public class TestCar {
public static void main(String[] args) {
Car.fix();
AudiCar audiCar = new AudiCar();
audiCar.driver();
audiCar. painting();
}
}
- static方法不需要建立例項,可以直接使用介面呼叫,static不可以重寫;
default方法需要建立例項進行呼叫,如果需要修改default的方法實現,可以在實現類中進行重寫。
關注不迷路,多寫程式碼,不掉頭髮!