抽象類與接口的異同
abstract
抽象關鍵字,一般用於抽象類,抽象方法,抽象對象。爲了等價比較,下文用於表示抽象類,即abstract class
。抽象類在代碼實現方面發揮作用。
interface
接口關鍵字。一組協議或規則的聲明,需要繼承的對象具體實現。接口在系統架構設計方面發揮作用,定義某種契約。
主要區別
抽象類也是類,而接口是接口。
抽象類單繼承,接口多繼承。
抽象類中的成員(對象,方法等)需要實現。接口不可以實現。(C#8.0後好像運行)
抽象類成員可以是public
,private
,protect
,internal
。抽象成員只能爲public
。
接口成員只能爲public
,且默認不寫。(C#8.0後允許)