java中的接口(個人小結)

1.什麼是接口?

1.1從生活中理解:

生活中常用的接口有USB、Type-C、HDMI等等。這些接口就是做一些事情的一種規範,但具體做什麼事,需要由遵從接口的實現類來決定。
如USB接口,可以做很多事,但具體做什麼需要由連接USB接口的設備類型決定,如鼠標類用來控制光標、鍵盤類用來輸入、U盤類用來存儲數據等等。

1.2java中的接口

類似於生活中的接口,創建新接口並通過自定義接口裏的方法,從而使該接口的不同實現類對象完成不同的功能。因此可以說接口就是一系列abstract方法的集合。接口沒有對象,且本身沒有任何實現。接口不能new對象,但可以new一個引用類對象,下邊會講到。

2.接口的使用

2.1格式:

創建接口:

interface  接口名 {
		成員變量//缺省屬性:public static final
		成員方法//缺省屬性:public abstract
		//方法中也可用default關鍵字修飾方法,擁有方法體,表示默認處理方法,是非強制實現方法
}

實現類【遵從】接口:

class 類名 implements 接口 {
	//非abstract類須將接口中的方法全部實現
}

2.2接口中的繼承

接口和接口之間,允許使用extends關鍵字繼承,並且與類繼承的唯一性不同,接口繼承允許一個接口同時繼承多個接口。
理解:協議的向下兼容

interface A extends B,C
//創建同時繼承接口B、C的接口A

案例:

interface USB {
//所有USB設備必須實現的方法
void connect;
}
//接口的實現類(鼠標類)
class Mouse implements USB { 
	@Override
	public void connect(){
		system.out.println("鼠標連接USB接口");
	}
}
//接口的實現類對象
class Logi extends Mouse {
	@Override
	public void connect(){
		system.out.println("羅技鼠標已連接");
	}
}

2.3接口中的多態

多態:
接口的引用指向遵從接口的實現類對象。或者說父類的引用指向子類的對象。
作用:
1.拓寬方法的參數範圍。如:方法參數爲某類型,則該類本身類對象或者其子類的類對象都可作爲參數。
2.拓寬方法的返回值範圍。
3.簡化代碼開發放,提高開發效率,整合數據類型

2.4接口中的匿名內部類

2.4.1理解

當重在使用接口中的方法,而類過於繁雜、不重要的時候,可直接通過接口new一個引用,該引用指向的是該接口的實現類對象,可通過該引用調用方法。

2.4.2使用格式

格式:
(1)

//用A接口new一個引用a,指向A的實現類對象
A a = new A() {
	//大括號裏可認爲是類的本身
	@Override
	public void test() {
		system.out.println("匿名內部類的對象賦值給接口的引用");
	}
}
a.test();

(2)直接用匿名類對象調用實現的方法

new A() {
	@Override
	public void test() {
		System.out.println("匿名內部類的匿名對象直接調用方法");
	}
}.test();

(3)匿名內部類的對象直接作爲方法的參數

testInterface(new A() {	
	@Override
	public void test() {
		System.out.println("匿名內部類的匿名對象直接作爲方法的參數");
	}
};

(4)需要接口A的實現類對象作爲方法的參數

public static void testInterface(A a) {
	a.test();
}
2.4.3應用

優化選擇排序算法

2.5集合中的接口

除自定義接口以外,java中會提供很多接口。如集合中的【總接口】Collection。java中所有和集合有關的內容都是Collection接口的子接口。
如Collection接口下有List接口【有序可重複】、Set接口【無序不可重複】、Vector接口。
List接口下有ArrayList【可變長數組結構】、LinkedList【雙向鏈表結構】
總接口Collection中的一些常用方法被其子接口繼承。如void clear();、boolean remove();

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