国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

接口interface

2019-11-09 15:09:46
字體:
來源:轉載
供稿:網友

java只支持單一繼承,不支持多重繼承,即一個類只能繼承一個父類,這一缺陷可以通過接口來彌補。Java允許一個類實現多個接口,這樣使程序更加靈活、易擴展。

定義接口

訪問符 interface 接口名[extends 父接口1,父接口2...]

{

//接口體

}

1.一個接口可以繼承多個父接口,但接口只能繼承接口,不能繼承類。

2.在接口體里可以包含靜態常量、抽象方法、內部類、內部接口以及枚舉的定義, 從java8版本開始允許接口中定義默認方法、類方法;

3.與類的默認訪問符不同,接口體內定義的常量、方法等都默認為public,可以 省略public關鍵字,即當接口中定義的常量或方法不寫public,其訪問權限 依然是public。

4.接口里定義的成員變量只能是常量

5.在接口里定義的普通方法只能是public的抽象方法,即沒有方法體,系統會自   動為其添加public abstract,因為接口總是要被其他類實現的,所以方法是公 共的。

6.接口中定義默認方法,需要使用default修飾,可以有方法體和內容

7.在接口中定義類方法,需要使用static修飾,通過接口的名稱調用類方法

8.接口不能直接實例化,但可以使用接口聲明引用類型的變量,該變量可以引用 到接口的實現類的實例對象上。接口的主要用途就是被實現類實現,一個類 可以實現一個或多個接口,接口之間用逗號進行間隔

9.[訪問符] class類名 implements接口1[,接口2.。。]{實體}

10.一個類在實現一個或多個接口是,這個類必須完成實現這些接口中定義的所 有抽象方法,否則該類必須定義為抽象類

11.一個類實現某個接口時,該類將會獲得接口中定義的常量、方法等,因此可 以將實現接口理解為一種特殊的繼承,相當于實現類繼承了一個徹底抽象的 類

定義接口:

public interface Myinterface {

//接口里定義的曾遠變量只能是常量

int MAX_VALU = 50;

//接口里定義的普通方法只能是public的抽象方法

void delMsg();

void addMsg(String msg);

//在接口中定義默認方法,需要使用default修飾

default void PRint(String...msgs){

for(String msg:msgs){

System.out.println(msg);

}

}

//在接口中定義類方法,需要使用ststic修飾

static String ststicTest(){

return "在接口里的類方法";

}

實現接口:

package p2;

public class ImInterfaceDemoimplements Myinterface{

//定義一個字符串數組,長度是接口中定義的常量MAX—SIZE

private String[] msgs = new String[Myinterface.MAX_VALU];

//記錄消息個數

private int num = 0;

//實現接口中的方法

public void delMsg() {

if(num <= 0 ){

System.out.println("消息隊列以空,刪除失敗!");

}else{

//刪除消息,num數量減1

msgs[--num]=null;

}

}

//實現接口中的方法

public void addMsg(Stringmsg) {

if(num>=Myinterface.MAX_VALU){

System.out.println("消息隊列已滿,num數量失敗!");

}else{

//將消息添加到字符串數組,num數量加1

msgs[num++] =msg;

}

}

//定義一個類實現自己的方法

public void showMsg(){

//輸出消息隊列中德信息

for(int i = 0;i <num;i++){

System.out.println(msgs[i]);

}

}

public static void main(String[]args) {

//實例化一個接口實現類的對象,并將其賦值給一個接口變量引用

Myinterface mi = new ImInterfaceDemo();

//調用接口的默認方法,默認方法必須通過實例對象來調用

mi.print("sda","dasd","da");

//調用接口的類方法,直接通過“接口名.類方法()”來調用

System.out.println(Myinterface.ststicTest());

System.out.println("...........");

//實例化接口實現類

ImInterfaceDemo ifd = new ImInterfaceDemo();

//添加信息

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

//輸出信息

ifd.showMsg();

System.out.println(".............");

//刪除一個信息

ifd.delMsg();

System.out.println("刪除一個數據后,剩下的信息是:");

ifd.showMsg();

}

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 句容市| 永仁县| 红原县| 绥江县| 八宿县| 枝江市| 永泰县| 武山县| 安阳县| 乐至县| 屏边| 蒙城县| 东源县| 九龙坡区| 会理县| 寿宁县| 得荣县| 阜平县| 内黄县| 石景山区| 太湖县| 米林县| 华蓥市| 阳信县| 玉龙| 开鲁县| 兴国县| 鄂托克前旗| 临城县| 玉林市| 沧州市| 射阳县| 双城市| 齐齐哈尔市| 阳江市| 诏安县| 宝坻区| 台江县| 翼城县| 临潭县| 原阳县|