接口實(shí)際上也可以簡(jiǎn)單理解為一種父類(lèi),但是接口有不同于類(lèi)的特性犀变,聲明接口的方式
訪問(wèn)權(quán)限 interface 接口名稱(chēng){
? ? ? ? ? ? //方法;
? ? ? ? ? ? static或者final變量;
}
接口的特性如下
1.接口內(nèi)的方法默認(rèn)為抽象方法,可以寫(xiě)abstract修飾秋柄,也可以不用获枝,隱式抽象
2.接口的成員變量必須是常量,需要final static修飾
3.類(lèi)在實(shí)現(xiàn)接口時(shí)必須要將接口內(nèi)全部的方法都實(shí)現(xiàn)(重寫(xiě))骇笔,抽象類(lèi)除外省店,抽象類(lèi)在實(shí)現(xiàn)接口時(shí)可以只重寫(xiě)接口的部分方法,但實(shí)現(xiàn)了接口的抽象類(lèi)的普通子類(lèi)必須重寫(xiě)接口的所有方法
4.接口內(nèi)的所有成員訪問(wèn)權(quán)限默認(rèn)都是public笨触,否則被繼承后就無(wú)法訪問(wèn)了懦傍,畢竟接口只能被實(shí)現(xiàn)。
5.接口內(nèi)的成員變量是常量芦劣,所以引用時(shí)直接使用接口名稱(chēng).變量名粗俱,即可訪問(wèn),當(dāng)然也可以使用繼承接口類(lèi)的對(duì)象訪問(wèn)虚吟。
6.接口無(wú)法直接實(shí)例化源梭,但是可以通過(guò)引用指向子類(lèi)對(duì)象
下面定義一個(gè)Car的接口
public interface Car{
public void run();
final static String color="black";
final static String brand="carora";
}
使用Carora類(lèi)去實(shí)現(xiàn)Car接口
public class Carora implements Car {
? ? public static void main(String args[]) {
? ? ? ? Car c1 = new Carora();//使用接口的引用指向子類(lèi)對(duì)象
? ? ? ? c1.run();調(diào)用
? ? ? ? System.out.print(c1.brand);//可以直接Car.brand訪問(wèn)變量
? ? }
? ? //重寫(xiě)run方法
? ? public void run() {
? ? ? ? System.out.print("HAHAHAHAHAHAHAH");
? ? }
}