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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

接口interface

2019-11-09 14:10:53
字體:
供稿:網(wǎng)友

java只支持單一繼承,不支持多重繼承,即一個(gè)類只能繼承一個(gè)父類,這一缺陷可以通過接口來彌補(bǔ)。Java允許一個(gè)類實(shí)現(xiàn)多個(gè)接口,這樣使程序更加靈活、易擴(kuò)展。

定義接口

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

{

//接口體

}

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

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

3.與類的默認(rèn)訪問符不同,接口體內(nèi)定義的常量、方法等都默認(rèn)為public,可以 省略public關(guān)鍵字,即當(dāng)接口中定義的常量或方法不寫public,其訪問權(quán)限 依然是public。

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

5.在接口里定義的普通方法只能是public的抽象方法,即沒有方法體,系統(tǒng)會(huì)自   動(dòng)為其添加public abstract,因?yàn)榻涌诳偸且黄渌悓?shí)現(xiàn)的,所以方法是公 共的。

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

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

8.接口不能直接實(shí)例化,但可以使用接口聲明引用類型的變量,該變量可以引用 到接口的實(shí)現(xiàn)類的實(shí)例對(duì)象上。接口的主要用途就是被實(shí)現(xiàn)類實(shí)現(xiàn),一個(gè)類 可以實(shí)現(xiàn)一個(gè)或多個(gè)接口,接口之間用逗號(hào)進(jìn)行間隔

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

10.一個(gè)類在實(shí)現(xiàn)一個(gè)或多個(gè)接口是,這個(gè)類必須完成實(shí)現(xiàn)這些接口中定義的所 有抽象方法,否則該類必須定義為抽象類

11.一個(gè)類實(shí)現(xiàn)某個(gè)接口時(shí),該類將會(huì)獲得接口中定義的常量、方法等,因此可 以將實(shí)現(xiàn)接口理解為一種特殊的繼承,相當(dāng)于實(shí)現(xiàn)類繼承了一個(gè)徹底抽象的 類

定義接口:

public interface Myinterface {

//接口里定義的曾遠(yuǎn)變量只能是常量

int MAX_VALU = 50;

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

void delMsg();

void addMsg(String msg);

//在接口中定義默認(rèn)方法,需要使用default修飾

default void PRint(String...msgs){

for(String msg:msgs){

System.out.println(msg);

}

}

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

static String ststicTest(){

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

}

實(shí)現(xiàn)接口:

package p2;

public class ImInterfaceDemoimplements Myinterface{

//定義一個(gè)字符串?dāng)?shù)組,長(zhǎng)度是接口中定義的常量MAX—SIZE

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

//記錄消息個(gè)數(shù)

private int num = 0;

//實(shí)現(xiàn)接口中的方法

public void delMsg() {

if(num <= 0 ){

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

}else{

//刪除消息,num數(shù)量減1

msgs[--num]=null;

}

}

//實(shí)現(xiàn)接口中的方法

public void addMsg(Stringmsg) {

if(num>=Myinterface.MAX_VALU){

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

}else{

//將消息添加到字符串?dāng)?shù)組,num數(shù)量加1

msgs[num++] =msg;

}

}

//定義一個(gè)類實(shí)現(xiàn)自己的方法

public void showMsg(){

//輸出消息隊(duì)列中德信息

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

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

}

}

public static void main(String[]args) {

//實(shí)例化一個(gè)接口實(shí)現(xiàn)類的對(duì)象,并將其賦值給一個(gè)接口變量引用

Myinterface mi = new ImInterfaceDemo();

//調(diào)用接口的默認(rèn)方法,默認(rèn)方法必須通過實(shí)例對(duì)象來調(diào)用

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

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

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

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

//實(shí)例化接口實(shí)現(xiàn)類

ImInterfaceDemo ifd = new ImInterfaceDemo();

//添加信息

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

ifd.addMsg("dasdsd");

//輸出信息

ifd.showMsg();

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

//刪除一個(gè)信息

ifd.delMsg();

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

ifd.showMsg();

}

}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 敦化市| 仁寿县| 白山市| 大埔区| 普宁市| 开封县| 英山县| 类乌齐县| 富民县| 麻城市| 文昌市| 泸州市| 凤庆县| 手游| 芮城县| 大关县| 姚安县| 镇坪县| 彰化市| 天镇县| 科尔| 湖南省| 普兰店市| 海城市| 平果县| 澳门| 祁东县| 青阳县| 泉州市| 玉山县| 青神县| 大田县| 东辽县| 资溪县| 长沙县| 新疆| 北辰区| 新田县| 五寨县| 彭泽县| 嘉义市|