c++虛類相當與java裡面的抽象類,與介面的不同之處如下:
1、一個子類只能繼承一個抽象類(虛類),但能實現多個介面;
2、一個抽象類可以有構造方法,介面沒有構造方法;
3、一個抽象類中的方法不一定是抽象方法,即其中的方法可以有實現(有方法體),介面中的方法都是抽象方法,不能有方法體,只有宣告;
4、一個抽象類可以是public、private、protected、default,
介面只有public;
5、一個抽象類中的方法可以是public、private、protected、default,
介面中的方法只能是public和default.
相同之處:都不能例項化。
補充說明:介面是一類特殊的抽象類,是更抽象的抽象類,你可能這樣理解。抽象類是一個不完整的類,介面只是定義了一些功能。打個比方,用抽象類和介面分別描述“豬”,抽象類就是在一般的類之前加abstrict,說:豬能用四肢跑,豬還能怎麼怎麼,介面的話只能說,豬會跑,用什麼跑就是子類的事啦。
c++虛類相當與java裡面的抽象類,與介面的不同之處如下:
1、一個子類只能繼承一個抽象類(虛類),但能實現多個介面;
2、一個抽象類可以有構造方法,介面沒有構造方法;
3、一個抽象類中的方法不一定是抽象方法,即其中的方法可以有實現(有方法體),介面中的方法都是抽象方法,不能有方法體,只有宣告;
4、一個抽象類可以是public、private、protected、default,
介面只有public;
5、一個抽象類中的方法可以是public、private、protected、default,
介面中的方法只能是public和default.
相同之處:都不能例項化。
補充說明:介面是一類特殊的抽象類,是更抽象的抽象類,你可能這樣理解。抽象類是一個不完整的類,介面只是定義了一些功能。打個比方,用抽象類和介面分別描述“豬”,抽象類就是在一般的類之前加abstrict,說:豬能用四肢跑,豬還能怎麼怎麼,介面的話只能說,豬會跑,用什麼跑就是子類的事啦。