(一) 接口定義java
①Java接口是一系列方法的聲明,是一些抽象的集合;程序員
②一個接口只有抽象方法沒有方法的實現,所以這些方法能夠在不一樣的地方被不一樣的類實現,而這些實現能夠具備不一樣的行爲(功能);編程
③簡單地說,接口就是特殊的抽象類,即全部方法都是抽象方法的抽象類就是Java中的接口(interface);學習
(二)接口的基本格式spa
[修飾符] interface 接口名 [extends 父接口名列表]{設計
[public] [static] [final] 常量;對象
[public] [abstract] 方法;}繼承
①修飾符:可選,用於指定接口的訪問權限,可選值爲public。即便省略,也依然是public接口
②接口名:必選參數,用於指定接口的名稱,接口名必須是合法的Java標識符。通常狀況下,要求首字母大寫面向對象編程
③extends 父接口名列表:可選參數,用於指定要定義的接口繼承於哪一個父接口。當使用extends關鍵字時,父接口名爲必選參數。父接口能夠存在多個,用逗號隔開
④方法:接口中的方法只有定義而沒有被實現
(三)接口的特色
①接口是一種特殊的抽象類
②接口中沒有變量,只能有public static final修飾的靜態常量。三個修飾符能夠省略;
③接口中全部方法都是抽象方法,且默認就是public權限
public interface Flyer {
public static final int TYPE=1;
public abstract void fly();
public abstract void land();
public abstract void takeoff();
(四)類實現接口
①類實現接口,本質上與類繼承類類似,區別在於「類最多隻能繼承一個類,即單繼承,而一個類卻能夠同時實現多個接口」,多個接口用逗號隔開便可。實現類須要覆蓋全部接口中的全部抽象方法,不然該類也必須聲明爲抽象類
②接口是抽象的,接口中沒有任何具體方法和變量,因此接口不能進行實例化。接口定義的是多個類都要實現的操做,即「what to do」。類能夠實現接口,從而覆蓋接口中的方法,實現「how to do;
(五)類實現接口
[修飾符] class <類名> [extends 父類名] [implements 接口列表]{
}
①修飾符:可選參數,用於指定類的訪問權限,可選值爲public、abstract和final
②類名:必選參數,用於指定類的名稱,類名必須是合法的Java標識符。通常狀況下,要求首字母大寫
③extends 父類名:可選參數,用於指定要定義的類繼承於哪一個父類。當使用extends關鍵字時,父類名爲必選參數
④implements 接口列表:可選參數,用於指定該類實現的是哪些接口。當使用implements關鍵字時,接口列表爲必選參數。當接口列表中存在多個接口名時,各個接口名之間使用逗號分隔
2、接口繼承接口
(一)接口繼承接口
①java接口繼承接口的原則;
1.Java接口能夠繼承多個接口
2.接口繼承接口依然使用關鍵字extends,不要錯用成implements
②Java接口繼承接口的形式;
Interface3 extends Interface0, Interface1, interface……
(二)接口繼承與類繼承
①接口繼承與類繼承對比:Java類的繼承是單一繼承,Java接口的繼承是多重繼承;
②接口可實現多繼承緣由分析
1.不容許類多重繼承的主要緣由是,若是A同時繼承B和C,而B和C同時有一個D方法,A沒法肯定該繼承那一個
2.接口全都是抽象方法繼承誰均可以,因此接口可繼承多個接口
3、接口與抽象類區別
|
abstract class |
interface |
屬性 |
不用限制 |
靜態常量 |
構造方法 |
無關緊要 |
沒有 |
普通方法 |
能夠有具體方法 |
必須是抽象方法 |
子類 |
單一繼承 |
多重實現 |
(一)區別總結
①abstract class 在 Java 語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。可是,一個類卻能夠實現多個interface.
②在abstract class 中能夠有本身的數據成員,也能夠有非abstarct的成員方法,而在interface中,只可以有靜態的不能被修改的數據成員(也就是必須是 static final的,不過在 interface中通常不定義數據成員),全部的成員方法都是abstract的
③實現抽象類和接口的類必須實現其中的全部方法。抽象類中能夠有非抽象方法。接口中則不能有實現方法
④接口中定義的變量默認是public static final 型,且必須給其初值,因此實現類中不能從新定義,也不能改變其值
⑤接口中的方法默認都是 public,abstract 類型的
4、接口的做用:面向接口編程
(一)接口的做用;
①接口是設計層面的概念,每每由設計師設計,將定義與實現分離
②程序員實現接口,實現具體方法;
③常見的類設計結構;
(二)面向接口編程
①面向接口編程和麪向對象編程並非平級的,它並非比面向對象編程更先進的一種獨立的編程思想,而是附屬於面向對象思想體系,屬於其一部分
②或者說,它是面向對象編程體系中的思想精髓之一
③面向接口編程的意思是指在面向對象的系統中全部的類或者模塊之間的交互是由接口完成的
5、深刻理解接口的做用:Comparable接口
(一)Comparable接口
①Comparable接口中定義了比較方法,compareTo,返回值爲int(忽略泛型,後續學習);
②當int值爲正數,表示大於;爲負數,表示小於;爲0,表示等於;
③API中不少類實現了該接口,不少方法藉助該接口;
④經過使用Arrays.sort(Object[])方法,理解該接口的做用,進一步理解接口的做用;