一.概念
接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。
二.語法規則
與定義類相似,使用interface關鍵詞。
Idea可以在開始時直接創建接口:
創建例子:
public interface Run {}
三.接口的特性
1.?接口和類之間使用implements關鍵詞來實現接口;
2. 接口不可以被實例化;
3. 接口中的成員變量,默認是public static final修飾的;
4. 接口中的抽象方法,默認是public abstract修飾的;
5. 如果接口中的方法被default或static修飾,那么可以有具體的實現;
6. 一個接口對應一個字節碼文件;
7. 如果一個類不想實現接口當中的方法,那么此時這個類就可以被定義為抽象類。但這個抽象類如果被繼承,那么就得實現所有沒有被實現的方法。
四.多個接口
類不可以多繼承,接口正好解決了這個問題。
一個類實現多個接口時,每個接口中的抽象方法都要實現,否則類必須設置為抽象類。
動物的例子,某一個動物可能兼備會跑,游泳和飛三個特點:
public class Dog extends Animal implements Run,Swim,Fly{}
接口與接口之間可以實現多繼承,即一個接口可以繼承多個接口。
五.抽象類和接口的區別
核心區別:抽象類中可以包含普通方法和普通字段,這些普通方法和字段可以直接被使用,而接口中不包含普通方法,子類必須重寫所有的抽象方法。
區別 | 抽象類(abstract) | 接口(interface) |
結構組成 | 普通類+抽象方法 | 抽象方法+全局常量 |
權限 | 各種權限 | public |
子類的使用 | 使用extends關鍵次來繼承抽象類 | 使用implements來實現接口 |
關系 | 一個抽象類可以實現若干個接口 | 接口不能繼承抽象類,但是接口可以使用extends繼承多個接口 |
子類限制 | 一個子類只能繼承一個抽象類 | 一個子類可以實現多個接口 |
?