天天看點

Java接口

Java接口

定義類要用class關鍵字,定義接口要用interface關鍵字。

接口是常量和抽象方法的集合。接口中的資料成員,不管有沒有用修飾符“public”、“static”或“final”修飾,都是public static final的,并且必須顯示的初始化。接口中的方法,不管有沒有用修飾符“public”或“abstract”修飾,都是public abstract的,并且必須不帶方法體。

源程式中可以定義多個類或接口,但最多隻能有一個public的類或接口,如果有則源檔案必須取和public的類和接口相同的名字。

接口可以繼承,子接口可以繼承父接口中的常量和抽象方法并添加新的抽象方法等。

接口沒有構造方法,不能被執行個體化。

接口中的方法必須由類來實作,定義一個實作接口的類,格式為:

修飾符 class 類名 extends 父類名 implements 接口名1,接口名2,…,接口名n {

實作方法

}

如果類不能實作implements關鍵字後面所列出的所有接口中所有的方法,則這個類必須用abstract修飾而成為抽象類。

一個類隻能繼承一個父類,但卻可以實作多個接口。

雖不允許建立接口的執行個體,但允許定義接口類型的變量,用來引用實作接口的類的執行個體。

例子:

import static java.lang.System.*;

public class Demo{

public static void main(String[] args) {

SataHdd sh1=new SeagateHdd(); //初始化希捷硬碟

SataHdd sh2=new SamsungHdd(); //初始化三星硬碟

//串行硬碟接口

interface SataHdd{

public static final int CONNECT_LINE=4;//連接配接線的數量,也可寫成int CONNECT_LINE=4;

public abstract void writeData(String data);//寫資料,也可寫成void writeData(String data);

public abstract String readData();//讀資料,也可寫成String readData();

// 維修硬碟接口

interface fixHdd{

String address = "北京市海澱區";// 維修位址

boolean doFix();// 開始維修

//希捷硬碟

class SeagateHdd implements SataHdd, fixHdd{

public String readData(){return "資料";}//希捷硬碟讀取資料

public void writeData(String data){out.println("寫入成功");}//希捷硬碟寫入資料

public boolean doFix(){return true;}// 維修希捷硬碟

//三星硬碟

class SamsungHdd implements SataHdd{

public String readData(){return "資料";}//三星硬碟讀取資料

public void writeData(String data){out.println("寫入成功");}//三星硬碟寫入資料

//某劣質硬碟,不能寫資料

abstract class XXHdd implements SataHdd{

public String readData(){return "資料";}//硬碟讀取資料

一個接口不實作另一個接口,但可以繼承多個其他接口。接口的多繼承特點彌補了類的單繼承:

public interface SataHdd extends A,B{

public static final int CONNECT_LINE = 4;

public void writeData(String data);

public String readData();

interface A{

public void a();

interface B{

public void b();

喜歡這樣文章的可以關注我,我會持續更新,你們的關注是我更新的動力!需要更多java學習資料的也可以私信我!

祝關注我的人都:身體健康,财源廣進,福如東海,壽比南山,早生貴子,從不掉發!