更新時間:2022-09-30 來源:黑馬程序員 瀏覽量:
接口和抽象類的區(qū)別:
1、都不能被實例化。
2、接口的實現(xiàn)類和抽象類的子類只有全部實現(xiàn)了接口或者抽象類中的方法后才可以被實例化。
不同點:
1、接口只能定義抽象方法不能實現(xiàn)方法,抽象類既可以定義抽象方法,也可以實現(xiàn)方法。
2、單繼承,多實現(xiàn)。接口可以實現(xiàn)多個,只能繼承一個抽象類。
3、接口強調(diào)的是功能,抽象類強調(diào)的是所屬關(guān)系。
4、接口中的所有成員變量 為public static final, 靜態(tài)不可修改,當(dāng)然必須初始化。接口中的所有方法都是public abstract
公開抽象的。而且不能有構(gòu)造方法。抽象類就比較自由了,和普通的類差不多,可以有抽象方法也可以沒有,可以有正常的方法,也可以沒有。
那么接口的作用是什么呢?
1、Java單繼承的原因所以需要曲線救國 作為繼承關(guān)系的一個補充。
2、把程序模塊進行固化的契約,降低偶合。把若干功能拆分出來,按照契約來進行實現(xiàn)和依賴。(依賴倒置原則)
3、定義接口有利于代碼的規(guī)范。(接口分離原則)
接口測試的測試重點:
1、通過性驗證,說白了就是傳遞正確的參數(shù),是否返回正常的結(jié)果
2、參數(shù)組合,因為參數(shù)有必傳和非必傳,參數(shù)的類型和長度,以及傳遞時可能業(yè)務(wù)上的一些限制,所以在設(shè)計用例時,就要排列組合這些情況,保證所有情況都能覆蓋到
3、接口的安全性,這個又分為幾種情況:
1)繞過驗證,比如提交訂單時,在傳遞商品價格參數(shù)時,修改商品價格,就要看后端有沒有驗證了?;蛘呶抑Ц稌r,抓個包將訂單金額一改,如果能以我改后的金額支付,那這個借口就有問題了。
2)繞過身份驗證,就是某個功能只有有特殊權(quán)限的用戶才能操作,那我傳遞一個普通的用戶,是不是也能操作呢
3)參數(shù)是否加密,這個關(guān)系到一些賬戶的安全,比如我們在登錄一些網(wǎng)站時,它要將我們的登錄信息進行加密,如果不加密我們的信息就會暴露,危害性極大。
4) 密碼安全規(guī)則,設(shè)置密碼時復(fù)雜程度的校驗。
4、根據(jù)業(yè)務(wù)邏輯來設(shè)計用例