_084_Java_介面(jdk1.8之前)和抽象類之間的關係
阿新 • • 發佈:2019-01-29
No. |
區別點 |
抽象類 |
介面 |
1 |
定義 |
包含一個抽象方法的類 |
抽象方法和全域性常量的集合 |
2 |
組成 |
構造方法、抽象方法、普通方法、常量、變數 |
常量、抽象方法 |
3 |
使用 |
子類繼承抽象類(extends) |
子類實現介面(implements) |
4 |
關係 |
抽象類可以實現多個介面 |
介面不能繼承抽象類,但允許繼承多個介面 |
5 |
常見設計模式 |
模板設計 |
工廠設計、代理設計 |
6 |
物件 |
都通過物件的多型性產生例項化物件 |
|
7 |
侷限 |
抽象類有單繼承的侷限 |
介面沒有此侷限 |
8 |
實際 |
作為一個模板 |
是作為一個標準或是表示一種能力 |
9 |
選擇 |
如果抽象類和介面都可以使用的話,優先使用介面,因為避免單繼承的侷限 |
|
10 |
特殊 |
一個抽象類中可以包含多個介面,一個介面中可以包含多個抽象類 |
在開發中,一個類不要去繼承一個已經實現好的類,要麼繼承抽象類,要麼實現介面。