接口泛指別人調(diào)用的方法或者是函數(shù)。我們是通過Interface來定義接口的蜕径,我們也可以將接口看做成一個抽象的類两踏,只不過他沒有構(gòu)造方法,同時它里面只有靜態(tài)的屬性和抽象的方法兜喻。這樣的話接口的實現(xiàn)就有幾點注意的事項了:
1梦染、接口的實現(xiàn)使用的是implements關(guān)鍵字來實現(xiàn)的。
2朴皆、接口的實現(xiàn)我們要實現(xiàn)接口里面的所有的抽象類當(dāng)時如果實現(xiàn)接口的類是一個抽象的類的話就可以不實現(xiàn)接口里面的抽象方法帕识。
3、因為接口沒有構(gòu)造方法所以接口不可以實例化遂铡。
眾所周知java不像c++那樣能有多繼承肮疗,java要實現(xiàn)多繼承的話就要通過接口來實現(xiàn),接口是可以多繼承的扒接。接口其實就是一種約定伪货,所以實現(xiàn)接口的類可以有很多们衙。我們有一個例子來細(xì)說接口與實現(xiàn):
我們定義一個書信的接口
public interface ILetter {
/***
* 書信的標(biāo)題
* @param str1 書信的標(biāo)題
*/
void title(String str1);
/**
* 書信的問候語
* @param str2 書信的問候語
*/
void sallHello(String str2);
/**
* 書信的內(nèi)容
* @param str3 書信的內(nèi)容
*/
void body(String str3);
/***
* 書信的結(jié)尾
* @param str4 書信的結(jié)尾
*/
void over(String str4);
/***
* 寫信人的姓名
* @param str5 寫信人的姓名
*/
void name(String str5);
/***
* 寫信的日期
* @param str6 寫信的日期
*/
void date(String str6);
}
我們定義的這個接口將日常生活中寫信的格式,這樣我們只要向里面添加文字就可以了〕瑁現(xiàn)在我們頂一個類來實現(xiàn)接口:
public class Letter implements ILetter {
@Override
public void title(String str1) {
System.out.println(str1);
}
@Override
public void sallHello(String str2) {
System.out.println(" "+str2);
}
@Override
public void body(String str3) {
System.out.println("\n "+str3);
}
@Override
public void over(String str4) {
System.out.println("\n "+str4);
}
@Override
public void name(String str5) {
System.out.println(" "+str5);
}
@Override
public void date(String str6) {
System.out.println(" "+str6);
}
}
實現(xiàn)接口的這個類里面我們重寫了書信接口里面的所有抽象的方法砍艾,我們一個類也可以實現(xiàn)多個接口,每個接口名之間我們用逗號隔開就可以了巍举。最后一步就是寫一個測試類來測試我們寫的接口是否有問題了脆荷。
public class LetterText {
public static void main(String[] args) {
Letter letter = new Letter();
String str1 = "尊敬的爸爸、媽媽:";
String str2 = "你們好嗎懊悯?";
String str3 = "我在這里挺好的蜓谋。\n 我會努力學(xué)的。\n 您二老保重身體炭分!";
String str4 = "此致\n敬禮";
String str5 = "周杰";
String str6 = "2010年6月1日";
letter.title(str1);
letter.sallHello(str2);
letter.body(str3);
letter.over(str4);
letter.name(str5);
letter.date(str6);
}
}
我們會發(fā)現(xiàn)這和我們多態(tài)沒有什么多大區(qū)別疤一馈!那為什么我們要定義接口捧毛?定義接口我們可以更好的管理我們定義的多態(tài)观堂。大量的節(jié)省代碼,同時大量的節(jié)省了我們火氣維護和更新代碼的時間呀忧。所以面向接口的編程可以給我們帶來無限的好處师痕。