interface
Java : 接口
- 接口定義:接口本質(zhì)上是一類特殊的抽象類
1. 在接口中,所有的方法是public且為abstract方法
2. 在接口中,所有的成員變量也都是public, 類似靜態(tài)常量
3. 接口與接口間可以有多重繼承
4. 接口沒有構(gòu)造方法,不能以new 接口類名()的形式創(chuàng)建接口實(shí)例,
但可以用接口聲明變量。
- 接口的實(shí)現(xiàn):
1. 由類用implements <接口名>
2. 類實(shí)現(xiàn)接口必須實(shí)現(xiàn)接口定義的所有方法
否則該類只能為抽象類,且顯示給出public修飾符,因?yàn)榻涌谀J(rèn)的訪問控制符為 public,而類的為default
3. 類只能繼承一個(gè),而實(shí)現(xiàn)接口可以同時(shí)實(shí)現(xiàn)多個(gè),以“,”分隔
- 接口的特性
1. 間接多重繼承
2. 接口隔離原則
3. 通過接口設(shè)置標(biāo)準(zhǔn)(去耦效果,最重要的作用)
4. 接口的回調(diào)機(jī)制
接口回調(diào)實(shí)多態(tài)的另一種體現(xiàn)。接口回調(diào)是指:可以把使用某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量中,那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法,當(dāng)接口變量調(diào)用被類實(shí)現(xiàn)的接口中的方法時(shí),就是通知相應(yīng)的對象調(diào)用接口的方法,稱為接口回調(diào)。不同的類在使用同一接口時(shí),可能具有不同的功能體現(xiàn),即接口的方法體不必相同,因此接口回調(diào)可能產(chǎn)生不同的
行為。
- 接口編程的原則
1. 盡量面向接口編程,
2. 接口隔離原則(用各個(gè)小的接口代替大的接口)
-接口與抽象類的區(qū)別
從語法層次上看,
1. 抽象類只能通過繼承,且只能單層繼承一個(gè)類。但一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口。
2. 抽象類可以有成員變量,也可以實(shí)現(xiàn)方法,靜態(tài)方法;但在接口中,只靜態(tài)能是常量且值不能被修改。
3. 繼承抽象類與實(shí)現(xiàn)接口都要實(shí)現(xiàn)所有定義的抽象方法。抽象類可以非抽象的方法,而接口不能方法的實(shí)現(xiàn)。
4. 接口定義的變量默認(rèn)都是public final static的常量,且必須指定具體的值,可以用接口名.變量名 直接點(diǎn)出常量。
5. 接口的方法默認(rèn)都是public abstract類型
從設(shè)計(jì)理念上看,
抽象類,它是"is-a"的關(guān)系;而接口是"like-a"的關(guān)系。