1. 程式人生 > >抽象類與介面的關係

抽象類與介面的關係

抽象類和介面是Java中最重要的概念!

區別點 抽象類(abstract class) 介面(interface)
定義 包含一個抽象方法的類 抽象方法和全域性常量的結合
組成 構造方法、抽象方法、普通方法、常量、變數 常量、抽象方法
使用 子類繼承抽象類(extends) 子類實現介面(implements)
關係 抽象類可以實現多個介面 介面不能繼承抽象類,但允許繼承多個介面
常見設計模式 模板設計 工廠設計、代理設計
物件 都通過物件的多型性產生例項化物件 都通過物件的多型性產生例項化物件
侷限 抽象類有單繼承的侷限 介面沒有此侷限
實際 作為一個模板 作為一個標準或表示一種能力
選擇 如果抽象類和介面都可以使用,優先使用介面,避免單繼承的侷限 如果抽象類和介面都可以使用,優先使用介面,避免單繼承的侷限
特殊 一個抽象類可以包含多個介面,一個介面中可以包含多個抽象類 一個抽象類可以包含多個介面,一個介面中可以包含多個抽象類

原則:
1、一個類不要去繼承一個已經實現好的類,只能繼承抽象類或實現介面。
2、如果介面和抽象類都可以使用,要優先使用介面,避免單繼承的侷限。