#頭條公開課繁星計劃#
#Java#
1、相同點
①抽象類和接口都不能執行個體化,但可以聲明。
比如:
public abstract class Student
{
……
}
∥聲明抽象類
Student student;∥OK
Student student = new Student();∥錯誤
②一個類繼承了某個抽象類,或實作了某個接口,其中的抽象方法全部都必須要實作,否則該類仍然需要聲明為抽象類(abstract class)。
2、不同點
①有抽象方法的類一定是抽象類,而抽象類不一定有抽象方法。
②接口中包含的方法一定是抽象方法。但Java JDK1.8中接口可以有方法體,子類可以不用重寫接口中已實作的方法。
③抽象類中的成員可以是private、default(即不寫通路修飾符)、protected、public的,而接口中的成員全都是public的。
④接口比抽象類更抽象,因為抽象類中可以定義構造器、成員變量和具體方法。
⑤抽象類中可以定義成員變量,而接口中定義的成員變量實際上都是常量。
