Java基礎知識回顧之介面
阿新 • • 發佈:2018-12-08
抽象類與介面的區別:
No. |
區別 |
抽象類 |
介面 |
1 |
關鍵字 |
abstract class |
interface |
2 |
組成 |
構造方法、普通方法、抽象方法、static方法、常量、變數 |
抽象方法、全域性常量 |
3 |
子類使用 |
class 子類 extends 抽象類 |
class 子類 implements 介面,介面... |
4 |
關係 |
抽象類可以實現多個介面(因為抽象類也是一個類物件) |
介面不能夠繼承抽象類,但是可以繼承多個父介面 |
5 |
許可權 |
可以使用各種許可權(訪問許可權) |
只能使用 public 許可權 |
6 |
限制 |
單繼承侷限(一個子類只能夠繼承一個父抽象類) |
沒有單繼承侷限 |
7 |
子類 |
抽象類和介面都必須有子類,子類必須要覆寫全部的抽象方法 | |
8 |
例項化物件 |
依靠子類物件的向上轉型進行物件的例項化 |
經過比較發現,抽象類中支援的功能比介面更多,但是隻有一點不好,那就是單繼承侷限,所以這重要的一點就掩蓋了所有抽象類的優點。即:當抽象類和介面都可以使用的時候,優先使用介面。
總體來說:抽象類就是更加具有“類”的特性;介面就更加的抽象。
附: