interface是抽象方法和常量的集合
從本質上來說,interface是一種特殊的抽象類,他存在着抽象方法(不用在方法前加abstract)和常量(final修飾的變量),但是卻不能定義變量和實作方法
public interface UserDao {
final String USER_NAME="username";
public void delete(Long uid);
}
接口的特點
1)多個無關的類可以使用同一個接口
2)一個類可以實作多個接口(類似多繼承,java中隻有單繼承)
3)接口中被定義的常量被預設是 public static final 修飾,你不寫上去,他也是認為你是被這個修飾的
4)接口中的抽象方法被預設為public 也隻能是public
5)你如果增加了接口的方法,那你糟了,實作了這個接口的類(implements)全都沒法運作了,要全改過和接口對上才行.
接口和抽象類對比
接口不能實作方法,抽象類可以
一個類可以有無數個接口,但抽象類隻能有一個 接口是implements 抽象類是繼承的(extends)
抽象類增加了新方法沒事,不能是abstract方法 繼承了抽象類的類美滋滋的就用起來了, 接口增加了新方法,你要去implements的類修改,增加.
抽象類可以有變量,常量 接口隻能有常量(就算你寫的是變量,該變量字首預設為 public static final)