更新時間: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)不可修改,當然必須初始化。接口中的所有方法都是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è)計用例
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19