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學習資料的也可以私信我!

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章