抽象關(guān)系就是 我是什么,而接口是 我提供哪些能力
接口:是一種特殊的抽象類,只能有常量和抽象方法,它定義一種功能,這種功能可以被不同的類獲取,這種獲取叫做“實(shí)現(xiàn)”(implements)。
定義:接口(interface)是抽象方法和常量值的集合。
接口(interface)是與類并行的一個(gè)概念,
1、接口可以看做是一個(gè)特殊的抽象類,是常量與抽象方法的集合,且只能有常量和方法。不能包含變量、一般的方法。
2、接口是沒有構(gòu)造器的。
3、接口定義的就是一種功能。此功能可以被類所實(shí)現(xiàn)(implements)。 ? ? ? ? 比如:class CC extends DD implements AA;(接口前面也可以有public修飾符)
4、實(shí)現(xiàn)接口的類,必須要重寫其中的所有的抽象方法,方可實(shí)例化。若沒有重寫所有的抽象方法,則此類為一個(gè)抽象類。
5、類可以實(shí)現(xiàn)多個(gè)接口。java中類的繼承是單繼承。
6、接口與接口之間也是繼承的關(guān)系,而且可以實(shí)現(xiàn)多繼承。
>5、6可以合并為java繼承特性的特點(diǎn)
7、接口與具體的實(shí)現(xiàn)類之間也存在多態(tài)性
--------------------------------------------------
interface AA{?
//常量(常量一般大寫,所有的常量都默認(rèn)的用public? static? final修飾,所以可以寫或者不寫) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? public? static? final? int I = 10;//常量要是final類型的,也要是全局的(static),也要是公有的(public)。
public ?static ?final ?boolean ?FLAG = false;
//抽象方法:所有的都用public abstract修飾,也可以不寫
public ?abstract ?void method1();
public? abstract? void method2();
?}
-------------------------------------------------
interface AA{
int ?I = 10;
boolean? FLAG = false;
void method1();
void method2();
}
舉個(gè)例子,例如collection,例如String,例如comparable
類跟類之間的關(guān)系叫繼承,類跟接口之間的關(guān)系叫實(shí)現(xiàn),接口跟接口之間也是繼承的關(guān)系。
class BB{ ?}