一、介面的定義
type 介面名 inte***ce
二、介面的形象例子
現實生活中usb介面就是乙個形象的介面例子,例如手機、相機、u盤這些按照統一規格設計usb在插頭,插入usb介面後有不同的反應
package main
import
("fmt"
)type usb inte***ce
type computer struct
//定義電腦u盤插口
type phone struct
type u struct
//定義手機以及u盤物件
func
(this *phone)
start()
func
(this *phone)
stop()
//手機已經實現了介面
func
(this *u)
start()
func
(this *u)
stop()
//u盤已經實現了介面
func
(this *computer)
working
(usb usb)
func
main()
u:=&u p:=
&phone
com.
working
(u)//模擬u盤插入
com.
working
(p)//模擬手機插入
}
三、介面與繼承的區別
繼承解決的是**復用性,介面是增加功能,並且不破壞繼承性
四、注意事項
1、介面的方法都沒有方法體;是引用型別;
2、如果乙個型別將介面的所有方法都實現,就說明這個型別實現了這個介面;
3)介面中不能擁有任何變數;
4)乙個介面可以繼承多個介面,實現該介面必須實現所有介面的方法;
5)空介面沒有任何方法,任何型別都實現了空介面,任何變數都可以賦值給空介面;
五、介面體現多型
1、多型陣列
var usb [
2] usb
usb[0]
= phone
usb[1]
= u
fmt.
println
(usb)
在這裡出現了乙個小bug,在傳遞時候,結構體是值型別,但如果需要修改結構體的值,需要使用指標型別進行引用傳遞。
2、型別斷言
1、由於介面是一般型別,不知道是什麼型別,所以必須要使用型別斷言
var b inte***ce
a:=b.
(float32
)
2、使用型別斷言獲取type
func
juge
(item...
inte***ce
)case
int:
case student:
case
*student:}}
}
在**中item...inte***ce{}
表示多引數傳導 介面基礎知識
介面的命名規則與類相同,如果修飾符是public,則該介面在整個專案中可見 如果省略修飾符,則該介面只在當前包前可見 介面中可以定義常量,不能定義變數,介面的屬性都會自動用public static final修飾,既介面中的屬性都是全域性靜態常量,介面中的常量必須在定義時指定初始值 介面中所有方法...
介面基礎知識
1 介面是橋梁,前後端是分開開發的,模擬介面moke 2 介面組成 get,和post全球性不一樣 get 進行分割 post是乙個鏈結,通過資料進行拼接 資料之間只有乙個表單的形式進行提交 介面分類 put,indit,get,post 如何理解介面?橋梁,負責傳輸資料 介面測試和功能測試區別?在...
介面基礎知識
在正式進入介面測試之前,我們來回憶和補充一下關於介面的基礎知識,這將為我們後面做介面測試奠定基礎。好了,廢話不多說,直接上乾貨。1 常見的介面協議 2 什麼是介面測試 介面測試本質是基於某種協議,傳送乙個請求給伺服器,然後伺服器返回乙個響應資料,通過對響應資料的分析,判斷是否與我們預期的返回一致,從...