介面和抽象類的區別

2022-09-24 14:17:17 字數 380 閱讀 9633

1樓:匿名使用者

簡單來說,

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,

另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。

還有,介面可以實現多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個介面實現多重繼承,介面還有標識(裡面沒有任何方法,如remote介面)和資料共享(裡面的變數全是常量)的作用.

2樓:守望者

介面是思維模型,抽象類是對該介面某類具體實現的共性抽取。

介面是協議規範,抽象類是施工指南的提綱。

C的抽象類中,抽象方法和純虛擬函式區別

問題1 含有virtual修飾符的方法稱為虛擬方法。不能像你說的那樣定義。問題2 1 虛擬方專法,子屬類可以選擇性重寫此方法,也可以不重寫 而抽象 abstract 方法,子類必須重寫。2 虛擬方法可以有實體,如 public virtual void vt 所以,可以直接呼叫虛擬方法 而抽象方法不...

虛基類與抽象類的問題,純虛類 和抽象類 有什麼關係

當繼承關係自頂來至自 下出現菱形路線時,bai最底層的派生類必然du會重複繼承最頂zhi層基類的成dao員,所以定義虛基類是為了解決這種重複繼承的問題。抽象類是包含純虛擬函式的類,它不能定義物件,在類中定義虛擬函式是為了解決基類的指標能夠呼叫派生類的函式也就是所謂的 多型性 讓一個命令實現多種響應。...

抽象類請編寫抽象類shape,在此基礎上派生出類rect

include define pi 3.1415926 using namespace std class shape 抽象類bai的 定義 class rectangle public shape 矩形類,公有內繼承 public rectangle double aa,double bb 帶引數...