抽象類&接口
相似度很高,很容易搞混。

規(guī)定
????抽象類:
本身不能是靜態(tài)的、私有的。因為要被繼承
可聲明普通變量。同未完全實現(xiàn)的抽象類。
?????接口:?
不能是私有的、受保護的。
定義的變量只能是公共且靜態(tài)的常量。

能做什么
?????抽象類:
可以寫方法、屬性的聲明,方法的實現(xiàn)。
能被抽象類、類繼承。
只能被單繼承。
?????接口:
可以寫方法的聲明。
能被類繼承。
可繼承多個接口

實例化時
????抽象類:必須實現(xiàn)所有方法;
????? ? 接口:必須實現(xiàn)所有方法;
偷個順口:
1.飛機會飛,鳥會飛,他們都繼承了同一個接口“飛”;但是F22屬于飛機抽象類,鴿子屬于鳥抽象類。
2. 就像鐵門木門都是門(抽象類),你想要個門我給不了(不能實例化),但我可以給你個具體的鐵門或木門(多態(tài));而且只能是門,你不能說它是窗(單繼承);一個門可以有鎖(接口)也可以有門鈴(多實現(xiàn))。 門(抽象類)定義了你是什么,接口(鎖)規(guī)定了你能做什么(一個接口最好只能做一件事,你不能要求鎖也能發(fā)出聲音吧(接口污染))。
C#中抽象類和接口的區(qū)別_51CTO博客_c#抽象類和接口區(qū)別:https://blog.51cto.com/u_15067229/3514088