介面基礎知識分享

2021-10-20 04:41:51 字數 1734 閱讀 5173

一、介面的定義

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 什麼是介面測試 介面測試本質是基於某種協議,傳送乙個請求給伺服器,然後伺服器返回乙個響應資料,通過對響應資料的分析,判斷是否與我們預期的返回一致,從...