1. 程式人生 > 其它 >Java8特性之介面default和static方法

Java8特性之介面default和static方法

技術標籤:Java基礎java

  • 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的方法實現,可以在實現類中進行重寫。

關注不迷路,多寫程式碼,不掉頭髮!
在這裡插入圖片描述