對于抽象類和接口的區(qū)別,其實沒有太多深層的東西需要我們?nèi)ヌ骄浚嗟倪€是以記憶為主,這里 壹哥 給各位設計了一個表格,清晰的對比了兩者的區(qū)別。
1. 抽象類和接口的常規(guī)區(qū)別
以上表格中就是抽象類與接口的主要區(qū)別,我們面試時,挑揀幾個重要的區(qū)別說說就可以了。
2. 抽象類和接口使用場景的區(qū)別
我們再次從抽象類和接口的使用場景方面,來分析對比兩者之間的區(qū)別。
如果我們想在多個子類中都做同一件事,即抽取出子類的共同特性,但這件事每個類中的具體實現(xiàn)細節(jié)又不同時,就可以考慮使用抽象類。比如我們每個人都要找一個對象,但是每個人找的對象又不一樣。
如果我們想實現(xiàn)多繼承,就必須使用接口,因為Java不支持多繼承,子類不能繼承多個父類,但可以實現(xiàn)多個接口。
3. 接口和抽象類的共同點
兩者之間既有區(qū)別,當然也有共同點,這里 壹哥 給大家總結如下:
兩者都屬于上層的抽象層;
兩者都不能被實例化;
兩者都能包含抽象的方法,這些抽象的方法都用于描述類具備的功能,但是不必提供具體的實現(xiàn)。
更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。