天天看點

接口的預設方法和靜态方法

    • 預設方法和靜态方法
    • 對比抽象類

預設方法和靜态方法

  • JDK8 以後接口可以有方法體。
    • 預設方法 default :
      • 可以通過實作接口的類執行個體化的對象來調用,也可以被重寫。
      • 是Public的。
    • 靜态方法 static :
      • 隻能在本接口中調用,職責上是工具方法。
public interface In {

    int get();

    static int getStatic() {
        return ;
    }

    default int getDefault() {
        getStatic();
        return ;
    }
}
           

對比抽象類

  • 這是接口向抽象類的靠近。
  • 抽象類可做,接口不可做:
    • 抽象類能夠定義 非static final 的屬性,而接口的屬性都是static final的。
    • 抽象類能夠定義 非public 方法,而接口的方法都是public的。
  • 接口可做,抽象類不可做:
    • 接口可以多繼承(實作),而抽象類隻能單繼承。