1. 程式人生 > >Interface和abstract比較

Interface和abstract比較

interfaceabstract
是否能被例項化不能不能
子類

一個子類可以實現多個介面

一個介面類A可以繼承多個介面類B和C,A的實現類子類必須實現ABC中定義的所有方法定義;

一個子類只能繼承一個抽象類

子類必須實現抽象父類所有抽象方法;

如果類中有一個成員方法是抽象方法,那麼該類必須變為抽象類;

成員變數可定義成員變數,變數為常量,預設為public static final修飾,且只能用如此修飾可定義普通成員變數
成員方法可以定義方法,方法不能有方法體,預設為public abstract修飾,且只能用如此修飾可定義普通成員方法,也可以定義抽象方法;
聯絡介面類是特殊的抽象類,抽象方法必須被子類實現;成員變數可以被子類重寫;

總結:

介面類比抽象類更嚴格;
既需要統一的介面,又需要成員變數和預設實現的方法,此時用抽象類。