Java筆記--接口
體現(xiàn)的思想是對(duì)規(guī)則的聲明,Java中的接口更多體現(xiàn)的是對(duì)行為的抽象。
如果一個(gè)類中 ,所有的組成都是抽象方法,沒(méi)有成員變量,沒(méi)有普通方法。這種類,我們通常會(huì)設(shè)計(jì)成為Java中的接口,因?yàn)檫@個(gè)類存在的唯一價(jià)值就是聲明規(guī)則。
1、如何定義接口
通過(guò)interface來(lái)定義。定義類是class 定義接口只需要將定義類的格式中的class換成interface。
public interface 接口名 {
}

2、接口不能實(shí)例化
因?yàn)榻涌谥械姆椒ǘ际浅橄蠓椒āH绻麆?chuàng)建了接口對(duì)象,就可以用對(duì)象調(diào)用到接口里的抽象方法,抽象方法沒(méi)有什么意義。
3、接口和類之間是實(shí)現(xiàn)關(guān)系,通過(guò)implements關(guān)鍵字表示
public class 類名 implements 接口名{
}
4、實(shí)現(xiàn)類(接口的子類)(干爹)

上面的類就是實(shí)現(xiàn)類。
要么重寫接口中的所有方法,要么這個(gè)類也是抽象類,但是在實(shí)際開發(fā)中都是第一種。
創(chuàng)建實(shí)現(xiàn)類對(duì)象,然后通過(guò)實(shí)現(xiàn)類對(duì)象調(diào)用接口的重寫方法。

5、接口的成員特點(diǎn):
<1>構(gòu)造方法:沒(méi)有
這里我們可能會(huì)有疑問(wèn),因?yàn)槲覀冎浪凶宇惖臉?gòu)造方法中默認(rèn)存在一個(gè)super( );來(lái)調(diào)用父類中的構(gòu)造方法,而實(shí)現(xiàn)類也是接口的子類,實(shí)現(xiàn)類中的super( );怎么辦呢?其實(shí)接口算是實(shí)現(xiàn)類的“干爹”,因?yàn)閷?shí)現(xiàn)類真正的父類是Object類。他的super( );調(diào)用的是Object類中的構(gòu)造方法。
<2>成員變量:只能定義常量
例如我們?cè)诮涌谥卸x int num = 10;
系統(tǒng)會(huì)在int num = 10;前面默認(rèn)加上 public static final關(guān)鍵字。
既然它是被final修飾的,所以按照江湖規(guī)矩,我們應(yīng)該將它改寫為int NUM = 10;
<3>成員方法:只能是抽象方法
因?yàn)橄到y(tǒng)會(huì)默認(rèn)加上兩個(gè)關(guān)鍵字public abstract。
6、接口和類之間的各種關(guān)系
<1>類和類之間:繼承關(guān)系,只支持單繼承,不支持多繼承,但是可以多層繼承。
<2>類和接口之間:實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn),甚至可以在繼承一個(gè)類的同時(shí),實(shí)現(xiàn)多個(gè)接口。
<3>接口和接口之間:繼承關(guān)系,可以單繼承,也可以多繼承。
7、抽象類和接口的對(duì)比
