1. 程式人生 > >java類介面和抽象類的區別

java類介面和抽象類的區別

  • 全域性變數的區別

    • 介面中所有的全域性變數預設為 public static final,處於方法區的常量池中,且是靜態域中的成員
    • 抽象類的全域性變數無硬性約束
  • 方法的區別

    • 介面

      • 介面中的方法從Java8開始支援帶方法體,兩種情況
        1. 用於修飾函式式介面中的主函式,作用域修飾符為default
        2. 靜態域中的方法,即帶static的修飾符,作用域修飾符為public
      • 介面中不帶方法體的方法作用域修飾符為public
    • 抽象類

      • 抽象類中的抽象方法作用域修飾符為public,且修飾符不能有final和static
      • 抽象類中的非抽象方法無硬性要求