接口和抽象類的區別

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

②前段時間我面試的時候總結的筆記:
抽象類:
1) 抽象方法,只有行爲的概念,沒有具體的行爲實現。
使用:abstract 關鍵字修飾,並且沒有方法體。
2) 包含抽象方法的類,就一定是抽象類。
使用: abstract 關鍵字修飾,包含抽象方法。
3) 抽象類不能直接創建實例。可以定義引用變量。
4) 抽象類只能被繼承,一個具體類繼承一個抽象類,必須實
現所有抽象方法。
5) 抽象方法和抽象類非常適合作爲系統的分析和設計的工具。
接口:
1 接口:全部的方法都是抽象方法,全部的屬性都是常量。
接口用來表示純抽象概念,沒有任何具體的方法和屬性。
2 不能實例化,可以定義變量。
3 接口變量可以引用具體實現類的實例。
4 接口只能被實現(繼承),一個具體類實現接口,必須使用全部的
抽象方法。
5 接口之間可以繼承。
6 一個具體類可以實現多個接口,實現多繼承現象,表示:
7 接口中的屬性,默認是常量 public static 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章