淺談java的接口和C++虛類(lèi)的相同和不同之處
C++虛類(lèi)相當(dāng)于java中的抽象類(lèi),與接口的不同之處是:
1.一個(gè)子類(lèi)只能繼承一個(gè)抽象類(lèi)(虛類(lèi)),但能實(shí)現(xiàn)多個(gè)接口
2.一個(gè)抽象類(lèi)可以有構(gòu)造方法,接口沒(méi)有構(gòu)造方法
3.一個(gè)抽象類(lèi)中的方法不一定是抽象方法,即其中的方法可以有實(shí)現(xiàn)(有方法體),接口中的方法都是抽象方法,不能有方法體,只有聲明
4.一個(gè)抽象類(lèi)可以是public、private、protected、default,接口只有public
5.一個(gè)抽象類(lèi)中的方法可以是public、private、protected、default,接口中的方法只能是public和default
相同之處是:都不能實(shí)例化。
補(bǔ)充說(shuō)明:接口是一類(lèi)特殊的抽象類(lèi),是更抽象的抽象類(lèi),你可能這樣理解。抽象類(lèi)是一個(gè)不完整的類(lèi),接口只是定義了一些功能。打個(gè)比方,用抽象類(lèi)和接口分別描述“狗”,抽象類(lèi)就是在一般類(lèi)之前加abstrict說(shuō):“豬能用四肢跑,豬和能這樣或者那樣...”,接口的話就只能說(shuō):“豬會(huì)跑,用什么跑就是子類(lèi)來(lái)講了”
以上這篇淺談java的接口和C++虛類(lèi)的相同和不同之處就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 在PDF中添加頁(yè)面跳轉(zhuǎn)按鈕功能(代碼演示)
這篇文章主要介紹了Java 在PDF中添加頁(yè)面跳轉(zhuǎn)按鈕功能,本文給大家提供了多種功能的按鈕,需要的朋友可以參考下2019-11-11Springboot過(guò)濾器禁止ip頻繁訪問(wèn)功能實(shí)現(xiàn)
這篇文章主要介紹了Springboot過(guò)濾器禁止ip頻繁訪問(wèn)功能實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

SpringBoot2.3.0配置JPA的實(shí)現(xiàn)示例

Java下http下載文件客戶(hù)端和上傳文件客戶(hù)端實(shí)例代碼

Java開(kāi)發(fā)如何把數(shù)據(jù)庫(kù)里的未付款訂單改成已付款

Java進(jìn)階學(xué)習(xí):jar打包詳解

JAVA基于Redis實(shí)現(xiàn)計(jì)數(shù)器限流的使用示例