抽象類和接口都位于繼承樹的上層,它們具有以下相同點:
代表系統的抽象層;
??? 當一個系統使用一棵繼承樹上的類時,應該盡可能地把引用變量聲明為繼承樹的上層抽象類型,這樣可以提高兩個系統之間的松耦合。
都不能被實例化;
都能包含抽象方法。這些抽象方法用于描述系統能提供哪些服務,但不必提供具體的實現。
抽象類與接口主要有兩大區別:
??? (1)在抽象類中可以為部分方法提供默認的實現,從而避免在子類中重復實現它們,提高代碼的可重用性,這是抽象類的優勢所在;而接口中只能包含抽象方法。
???
??? 擴展功能時,在抽象父類中加入具體方法不會影響子類;但在接口中加入抽象方法會影響到所有實現類。
??? (2)一個類只能繼承一個直接的父類,這個父類有可能是抽象類;但一個類可以實現多個接口,這是接口的優勢所在。
posted on 2006-11-29 00:40
EricWong 閱讀(208)
評論(0) 編輯 收藏 所屬分類:
Java