接口和抽象類有什么區別?


 

  • 抽象類可以有構造方法;接口中不能有構造方法。
  • 抽象類中可以有普通成員變量;接口中沒有普通成員變量。
  • 抽象類中可以包含非抽象普通方法;接口中的所有方法必須都是抽象的。
  • 抽象類中的抽象方法的訪問權限可以是 public、protected 和 default;接口中的抽象方法只能是 public 類型的,並且默認即為 public abstract 類型。
  • 抽象類中可以包含靜態方法;JDK1.8 前接口中不能包含靜態方法,JDK1.8 及以后可以包含已實現的靜態方法。
public interface TestInterfaceStaticMethod {
 
    static String getA() {
        return "a";
    }
    
}

 

  • 抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量可以是任意訪問權限;接口中變量默認且只能是 public static final 類型。
  • 一個類可以實現多個接口,用逗號隔開,但只能繼承一個抽象類。
  • 接口不可以實現接口,但可以繼承接口,並且可以繼承多個接口,用逗號隔開。

 

  

來一道刷了進BAT的面試題?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM