抽象類(Abstract)和接口的不同點、共同點(Interface)。

相同點:    
  (1) 都可以被繼承     
(2) 都不能被實例化     
(3) 都可以包含方法聲明    
 (4) 派生類必須實現未實現的方法  
 區 別:     
 (1) 抽象基類可以定義字段、屬性、方法實現。接口只能定義屬性、索引器、事件、和方法聲明,不能包含字段。      
(2) 抽象類是一個不完整的類,需要進一步細化,而接口是一個行爲規範。微軟的自定義接口總是後帶able字段,證明其是表述一類“我能做。。。”     
(3) 接口可以被多重實現,抽象類只能被單一繼承      
(4) 抽象類更多的是定義在一系列緊密相關的類間,而接口大多數是關係疏鬆但都實現某一功能的類中      
(5) 抽象類是從一系列相關對象中抽象出來的概念, 因此反映的是事物的內部共性;接口是爲了滿足外部調用而定義的一個功能約定, 因此反映的是事物的外部特性      
(6) 接口基本上不具備繼承的任何具體特點,它僅僅承諾了能夠調用的方法        
 (7) 接口可以用於支持回調,而繼承並不具備這個特點     
 (8) 抽象類實現的具體方法默認爲虛的,但實現接口的類中的接口方法卻默認爲非虛的,當然您也可以聲明爲虛的      
 (9) 如果抽象類實現接口,則可以把接口中方法映射到抽象類中作爲抽象方法而不必實現,而在抽象類的子類中實現接口中方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章