C++虛類相當於java中的抽象類,與接口的不同處是:
1.一個子類只能繼承一個抽象類(虛類),但能實現多個接口
2.一個抽象類可以有構造方法,接口沒有構造方法
3.一個抽象類中的方法不一定是抽象方法,即其中的方法可以有實現(有方法體),接口中的方法都是抽象方法,不能有方法體,只有方法聲明
4.一個抽象類可以是public、private、protected、default,接口只有public
5.一個抽象類中的方法可以是public、private、protected、default,接口中的方法只能是public和default修飾,實際上都是public的abstract方法
相同之處是:
都不能實例化。
補充:
接口是一類特殊的抽象類,是更抽象的抽象類,你可以這樣理解。抽象類是一個不完整的類,接口只定義了一些功能。