
java基礎(chǔ):接口
接口
- 接口(英文:interface),在java編程語(yǔ)言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來聲明。
- 接口無法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)描述的所有方法,否則就必須聲明為抽象類。
- 另外,在java中可以聲明變量,他們可以成為一個(gè)空指針,或被綁定在一個(gè)依次接口實(shí)現(xiàn)的對(duì)象。
接口特性
- 接口中每一個(gè)方法都是隱式抽象的,接口中的方法會(huì)被隱式的指定為public abstract(只能是這個(gè))
- 接口中可以有變量,會(huì)被隱式的指定為public stataic final 字段(只能是public)
- 接口中方法都是公有的。
- 接口可以多繼承。
接口聲明
(public) interface 接口名稱 【extend 其他接口名】{
(public static final ) int a = 0;
(public abstract) void fun();
}
重寫接口的方法,注意事項(xiàng)
- 類在實(shí)現(xiàn)接口是,不能拋出強(qiáng)制性異常,只能在繼承接口中,或繼承接口抽象類中拋出該強(qiáng)制性異常
- 類在重寫是要保持一致的方法名,并且返回值類型保持相同或者相兼容。
- 如果實(shí)現(xiàn)接口的類是抽象類,那么沒必要實(shí)現(xiàn)該接口的方法。
在實(shí)現(xiàn)接口時(shí),注意事項(xiàng)
- 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口
- 一個(gè)接口可以繼承另一個(gè)接口,與類之間的繼承比較相似
標(biāo)記接口
最常用的繼承接口是標(biāo)記接口,既沒有包含任何方法的接口。
- 定義:標(biāo)機(jī)接口是沒有任何方法與屬性的接口。僅僅表名他的類屬于一個(gè)特定的類型,供其他代碼來測(cè)試允許做一些事情。
- 作用:簡(jiǎn)單來說就是給對(duì)象蓋個(gè)戳,是對(duì)想擁有某個(gè)或者某些特權(quán)。
- 目的:
(1)建立一個(gè)公共父接口:
(2)向一個(gè)類型添加數(shù)據(jù)類型:這種情況是標(biāo)記接口最初的目的,實(shí)現(xiàn)標(biāo)記接口的類不需要定義任何接口的方法(因?yàn)楦緵]有可以實(shí)現(xiàn)的的方法),但是該類通過多態(tài)性變成一個(gè)接口類型。
注意
在 JDK1.8,允許我們給接口添加兩種非抽象的方法實(shí)現(xiàn):
- 默認(rèn)方法,添加 default 修飾即可;
- 靜態(tài)方法,使用 static 修飾;示例如下:
interface Test{
//條件是jdk1.8后
default String get(String aa){
System.out.println("默認(rèn)方法");
return "";
}
static void staticmethod(){
System.out.println("靜態(tài)方法");
}
}